PR libstdc++/85951 for make_signed/make_unsigned for character types
[gcc.git] / libstdc++-v3 / ChangeLog
1 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/85951
4 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
5 uint_least16_t and uint_least32_t.
6 (__make_unsigned<wchar_t>): Define unconditionally.
7 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
8 typedefs.
9 (__make_unsigned_selector_base): New type to provide helper templates.
10 (__make_unsigned_selector<_Tp, false, true>): Reimplement using
11 __make_unsigned_selector_base helpers.
12 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
13 (__make_signed_selector<_Tp, true, false>): Remove intermediate
14 typedefs.
15 (__make_signed<wchar_t>, __make_signed<char16_t>)
16 (__make_signed<char32_t>)): Define unconditionally.
17 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
18 wchar_t, char16_t and char32_t are transformed correctly.
19 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
20 dg-error lineno.
21 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
22 wchar_t, char16_t and char32_t are transformed correctly.
23 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
24 dg-error lineno.
25
26 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
27
28 * include/std/variant (__erased_dtor): Qualify call to __get.
29
30 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
31
32 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
33 (_Rb_tree(const allocator_type&)): Use latter.
34 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
35 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
36 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
37 * include/bits/stl_multimap.h
38 (multimap(const allocator_type&)): Likewise.
39 (multimap(initializer_list<value_type>, const allocator_type&)):
40 Likewise.
41 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
42 Likewise.
43 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
44 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
45 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
46 * include/bits/stl_multiset.h
47 (multiset(const allocator_type&)): Likewise.
48 (multiset(initializer_list<value_type>, const allocator_type&)):
49 Likewise.
50 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
51 Likewise.
52
53 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
54
55 PR libstdc++/85768
56 * src/c++11/debug.cc: Remove backtrace usage.
57
58 2018-05-24 Maya Rashish <coypu@sdf.org>
59
60 PR target/85904
61 * crossconfig.m4: Test for aligned_alloc on netbsd.
62 * configure: Regenerate.
63
64 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
65
66 PR libstdc++/69769
67 PR libstdc++/85886
68 * include/bits/atomic_base.h (__atomic_base::value_type)
69 (__atomic_base::difference_type): Add new typedefs.
70 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
71 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
72 (atomic<T*>::operator++, atomic<T*>::operator--)
73 (atomic<T*>::operator+=, atomic<T*>::operator-=)
74 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
75 to enforce C++17 requirement on pointer arithmetic.
76 (__atomic_val_t, __atomic_diff_t): New alias templates.
77 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
78 (atomic_compare_exchange_weak_explicit)
79 (atomic_compare_exchange_strong_explicit, atomic_store)
80 (atomic_exchange, atomic_compare_exchange_weak)
81 (atomic_compare_exchange_strong): Use __atomic_val_t to make
82 scalar parameters be non-deduced contexts.
83 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
84 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
85 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
86 parameters.
87 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
88 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
89 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
90 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
91 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
92 address types.
93 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
94 * testsuite/29_atomics/atomic/69769.cc: New test.
95 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
96 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
97 Disable test for C++17 and later.
98 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
99 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
100 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
101 test.
102
103 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
104
105 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
106 template to alias template.
107 (path::__value_type_is_char): Use remove_const_t.
108 (path:_S_string_from_iter): New helper function.
109 (path::_S_convert(InputIter, __null_terminated))
110 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
111 Use _S_string_from_iter.
112 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
113 rep for COW strings.
114 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
115 Change from class template to alias template.
116 (path::__value_type_is_char): Use remove_const.
117 (path:_S_string_from_iter): New helper function.
118 (path::_S_convert(InputIter, __null_terminated))
119 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
120 Use _S_string_from_iter.
121 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
122 wide strings.
123 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
124 string equality, not path equivalence.
125 * testsuite/27_io/filesystem/path/construct/format.cc: Check
126 construction from std::string and std::wstring and input iterators.
127 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
128 construction from iterators.
129 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
130 exact string equality, not path equivalence.
131 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
132 construction from iterators.
133
134 * include/bits/fs_path.h (path::_M_type): Change default member
135 initializer to _Filename.
136 (path::begin): Create past-the-end iterator for empty path.
137 * src/filesystem/std-path.cc (path::remove_filename()): Remove
138 debugging check.
139 (path::has_relative_path()): Return false for empty filenames.
140 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
141 Fix offset of empty final component.
142 * testsuite/27_io/filesystem/path/itr/components.cc: New.
143 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
144
145 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
146
147 Add support for opening file streams from wide character strings.
148 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
149 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
150 Define new overload.
151 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
152 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
153 Declare new overload.
154 * configure.ac: Check for _wfopen.
155 * crossconfig.m4: Likewise.
156 * configure: Regenerate.
157 * config.h.in: Regenerate.
158 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
159 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
160 Define new overload.
161 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
162 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
163 Declare new overload.
164 [_GLIBCXX_HAVE__WFOPEN]
165 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
166 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
167 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
168 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
169 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
170 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
171 new overloads.
172 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
173 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
174 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
175 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
176 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
177 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
178 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
179
180 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
181
182 PR libstdc++/85845
183 * include/bits/stl_tree.h
184 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
185 qualification.
186
187 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
188
189 * src/filesystem/std-ops.cc (absolute): Report an error for empty
190 paths.
191 (weakly_canonical(const path&)): Do not call canonical on empty path.
192 (weakly_canonical(const path&, error_code&)): Likewise.
193 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
194
195 PR libstdc++/85818
196 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
197 dg-require-filesystem-ts.
198
199 PR libstdc++/85843
200 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
201 initialize base class to avoid warnings.
202
203 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
204
205 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
206 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
207 little_endian element in bitmask.
208 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
209 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
210
211 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
212
213 * include/bits/stl_tree.h
214 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
215 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
216 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
217 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
218 * include/debug/map.h
219 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
220 * include/debug/multimap.h
221 (multimap(multimap&&, const_allocator_type&)): Likewise.
222 * include/debug/set.h
223 (set(set&&, const_allocator_type&)): Likewise.
224 * include/debug/multiset.h
225 (multiset(multiset&&, const_allocator_type&)): Likewise.
226 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
227 Add checks.
228 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
229 Add checks.
230 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
231 Add checks.
232 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
233 Add checks.
234 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
235 Add checks.
236 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
237 Add checks.
238 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
239 Add checks.
240 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
241 Add checks.
242
243 2018-05-18 Jason Merrill <jason@redhat.com>
244
245 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
246 for conversion to const_iterator. Add defaulted copy ops.
247 * libsupc++/new (bad_alloc): Add defaulted copy ops.
248 * libsupc++/exception.h (exception): Add defaulted copy ops.
249 * include/std/system_error (system_error): Add defaulted copy ops.
250 * include/std/stdexcept (domain_error, invalid_argument)
251 (length_error, out_of_range, range_error, overflow_error)
252 (underflow_error): Add defaulted copy ops.
253 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
254 copy assignment.
255 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
256 * include/ext/throw_allocator.h (condition_base): Add defaulted
257 default and copy ctor and copy assignment.
258
259 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
260
261 PR libstdc++/85098
262 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
263 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
264 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
265 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
266 definitions.
267 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
268 whitespace.
269 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
270 braces around body of do-while.
271 * testsuite/28_regex/basic_regex/85098.cc: New
272
273 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
274
275 PR libstdc++/85818
276 * src/filesystem/path.cc (path::preferred_separator): Add used
277 attribute.
278 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
279
280 PR libstdc++/85812
281 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
282 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
283 Refactor to separate non-throwing and throwing implementations.
284 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
285 if constructing the object throws.
286
287 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
288
289 PR libstdc++/85749
290 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
291 (linear_congruential_engine, mersenne_twister_engine)
292 (subtract_with_carry_engine, discard_block_engine)
293 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
294 constrain function templates taking seed sequences.
295 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
296 (mersenne_twister_engine::seed(_Sseq&))
297 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
298 match declarations.
299 * include/ext/random (simd_fast_mersenne_twister_engine): Use
300 __is_seed_seq to constrain function templates taking seed sequences.
301 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
302 Change return type to match declaration.
303 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
304 New.
305 * testsuite/26_numerics/random/independent_bits_engine/cons/
306 seed_seq2.cc: New.
307 * testsuite/26_numerics/random/linear_congruential_engine/cons/
308 seed_seq2.cc: New.
309 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
310 seed_seq2.cc: New.
311 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
312 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
313 New.
314 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
315 seed_seq2.cc: New.
316 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
317 seed_seq2.cc: New.
318
319 PR libstdc++/83891
320 * include/bits/fs_path.h (path::is_absolute()): Use same definition
321 for all operating systems.
322 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
323 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
324 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
325 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
326
327 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
328 unused <vector> header.
329 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
330 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
331 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
332 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
333 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
334 Likewise.
335 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
336 Likewise.
337 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
338 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
339 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
340 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
341 * testsuite/experimental/filesystem/path/decompose/extension.cc:
342 Likewise.
343 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
344 * testsuite/experimental/filesystem/path/query/has_extension.cc:
345 Likewise.
346 * testsuite/experimental/filesystem/path/query/has_filename.cc:
347 Likewise.
348 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
349 Likewise.
350 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
351 Likewise.
352 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
353 Likewise.
354 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
355 Likewise.
356 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
357 Likewise.
358 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
359 * testsuite/experimental/filesystem/path/query/is_relative.cc:
360 Likewise.
361
362 PR libstdc++/84159
363 * include/bits/fs_path.h (path::operator/=, path::append): Construct
364 temporary path before calling _M_append.
365 (path::_M_append): Change parameter to path and implement C++17
366 semantics.
367 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
368 and more examples from the standard.
369 * testsuite/27_io/filesystem/path/append/source.cc: New.
370 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
371 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
372
373 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
374 __invoke to prevent ADL.
375
376 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
377
378 PR libstdc++/81256
379 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
380 exceptions from _M_terminate_output().
381 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
382 exceptions from close().
383 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
384
385 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
386 (__valarray_get_storage): Call operator new directly. Remove ignored
387 top-level restrict qualifier and add malloc attribute instead.
388 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
389
390 PR libstdc++/67554
391 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
392 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
393
394 PR libstdc++/82966
395 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
396 instead of type.
397 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
398
399 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
400
401 PR libstdc++/80165
402 * testsuite/20_util/variant/80165.cc: New.
403
404 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
405
406 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
407 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
408 of C++11 containers with Debug Mode support.
409 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
410 * doc/html/*: Regenerate.
411
412 2018-05-10 Jason Merrill <jason@redhat.com>
413
414 * include/bits/regex_compiler.h (_S_cache_size): Change from
415 function to variable.
416
417 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
418
419 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
420 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
421 argument defaulted to +1. Doxy comments on same.
422 * testsuite/special_functions/02_assoc_legendre/
423 check_value.cc: Regen.
424 * testsuite/tr1/5_numerical_facilities/special_functions/
425 02_assoc_legendre/check_value.cc: Regen.
426
427 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
428
429 PR libstdc++/85729
430 * include/bits/c++config.h (__replacement_assert): Add linkage
431 specification.
432 * include/bits/std_abs.h: Add comment to closing brace of block.
433 * include/c_global/cstddef: Add linkage specification.
434 * include/c_global/cstring: Likewise.
435 * include/c_global/cwchar: Likewise.
436
437 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
438
439 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
440 Rename in...
441 (_Safe_iterator<>::_S_constant()): ...that.
442 * include/debug/safe_local_iterator.h
443 (_Safe_local_iterator<>::_M_constant()): Rename in...
444 (_Safe_local_iterator<>::_S_constant()): ...that.
445 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
446 (_Iterator_state::__rbegin): New.
447 (_Iterator_state::__rmiddle): New.
448 (_Iterator_state::__rend): New.
449 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
450 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
451 iterator type.
452 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
453 _Is_iterator)): Likewise.
454 (_Parameter::_S_reverse_state(_Iterator_state)): New.
455 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
456 _Is_iterator)): New.
457 (_Parameter(std::reverse_iterator<> const&, const char*,
458 _Is_iterator)): New.
459 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
460 const char*, _Is_iterator)): New.
461 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
462 New.
463 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
464 _Is_iterator)): New.
465 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
466 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
467 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
468
469 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
470
471 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
472 Use constexpr if in C++17 mode.
473 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
474 Copy from const object.
475 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
476
477 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
478
479 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
480 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
481 backtrace.
482
483 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
484 * include/debug/functions.h (__check_valid_range): Use latter.
485 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
486 use latter.
487 * include/debug/deque
488 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
489 * include/debug/forward_list
490 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
491 Likewise.
492 * include/debug/list
493 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
494 * include/debug/list
495 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
496 * include/debug/map.h
497 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
498 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
499 Likewise.
500 * include/debug/multimap.h
501 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
502 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
503 const _Alloc&)): Likewise.
504 * include/debug/set.h
505 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
506 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
507 Likewise.
508 * include/debug/multiset.h
509 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
510 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
511 const _Alloc&)): Likewise.
512 * include/debug/string
513 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
514 Likewise.
515 * include/debug/unordered_map
516 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
517 Likewise.
518 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
519 const _Alloc&)): Likewise.
520 * include/debug/unordered_set
521 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
522 Likewise.
523 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
524 const _Alloc&)): Likewise.
525 * include/debug/vector
526 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
527
528 * include/debug/formatter.h (_Error_formatter::_M_function): New.
529 (_Error_formatter(const char*, unsigned int)): Adapt.
530 (_Error_formatter::_M_at): Rename in...
531 (_Error_formatter::_S_at): ...that and adapt.
532 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
533 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
534 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
535 when available.
536
537 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
538
539 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
540 Use normal std::vector even in Debug Mode.
541
542 PR libstdc++/85672
543 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
544 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
545 * include/Makefile.in: Regenerate.
546 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
547 within conditional block.
548
549 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
550
551 * doc/xml/manual/using.xml (table.cmd_options): Document that the
552 C++17 Filesystem implementation also needs -lstdc++fs.
553
554 PR libstdc++/85671
555 * include/bits/fs_path.h (operator/): Permit copy elision.
556 * include/experimental/bits/fs_path.h (operator/): Likewise.
557
558 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
559
560 Moar PR libstdc++/80506
561 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
562 Fix magic number used in loop condition.
563
564 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
565
566 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
567 * include/std/optional (_Optional_payload): Add noexcept to default
568 constructor. Re-indent.
569 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
570 constructor for copying disengaged payloads.
571 (_Optional_payload<_Tp, true, false, true>): Likewise.
572 (_Optional_payload<_Tp, true, true, false>): Likewise.
573 (_Optional_payload<_Tp, true, false, false>): Likewise.
574 * testsuite/20_util/optional/cons/85642.cc: New.
575 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
576
577 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
578
579 PR libstdc++/82644
580 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
581 inline definitions instead of using-declarations.
582 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
583 * testsuite/tr1/5_numerical_facilities/special_functions/
584 07_conf_hyperg/compile_cxx17.cc: New.
585 * testsuite/tr1/5_numerical_facilities/special_functions/
586 17_hyperg/compile_cxx17.cc: New.
587
588 PR libstdc++/84769
589 * include/std/variant (visit): Qualify std::get call.
590
591 PR libstdc++/85632 use uintmax_t for arithmetic
592 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
593 arithmetic in result type.
594 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
595 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
596 is greater than free space.
597 * testsuite/experimental/filesystem/operations/space.cc: New.
598
599 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
600 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
601 New.
602 * testsuite/20_util/remove_cvref/value.cc: New.
603 * testsuite/20_util/remove_cvref/value_ext.cc: New.
604
605 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
606 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
607 (append(const basic_string&, size_type, size_type)
608 (assign(const basic_string&, size_type, size_type)
609 (insert(size_type, const basic_string&, size_type, size_type)
610 (replace(size_type,size_type,const basic_string&,size_type,size_type)
611 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
612 Add default arguments (LWG 2268).
613 [_GLIBCXX_USE_CXX11_ABI=0]
614 (append(const basic_string&, size_type, size_type)
615 (assign(const basic_string&, size_type, size_type)
616 (insert(size_type, const basic_string&, size_type, size_type)
617 (replace(size_type,size_type,const basic_string&,size_type,size_type)
618 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
619 Likewise.
620 * testsuite/21_strings/basic_string/dr2268.cc: New test.
621
622 PR libstdc++/84535
623 * include/std/thread (thread::__not_same): New SFINAE helper.
624 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
625 first argument is not a std::thread. Add static assertion to check
626 INVOKE expression is valid.
627 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
628 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
629 __invoke_result for return types and remove exception specifications.
630 * testsuite/30_threads/thread/cons/84535.cc: New.
631
632 * include/std/future (__async_result_of): Use __invoke_result instead
633 of result_of.
634
635 * include/std/any (any_cast): Use __remove_cvref_t.
636 * include/std/tuple (__make_tuple): Likewise.
637 * include/std/type_traits (__remove_cvref_t): Define.
638 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
639 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
640 * include/std/variant (__erased_hash): Use __remove_cvref_t.
641
642 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
643
644 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
645 ensure overloaded comma not used.
646 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
647 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
648 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
649 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
650 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
651 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
652 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
653
654 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
655
656 PR libstdc++/68197
657 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
658 indices to unsigned.
659 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
660 as failure. Refactor error handling.
661 * testsuite/27_io/ios_base/storage/68197.cc: New.
662
663 PR libstdc++/57997
664 PR libstdc++/83860
665 * include/bits/gslice_array.h (gslice_array): Define default
666 constructor as deleted, as per C++11 standard.
667 * include/bits/mask_array.h (mask_array): Likewise.
668 * include/bits/slice_array.h (slice_array): Likewise.
669 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
670 to namespace __detail.
671 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
672 members.
673 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
674 of data members in closure objects.
675 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
676 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
677 __detail.
678 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
679 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
680 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
681 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
682 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
683 using-declarations to namespace std.
684 * testsuite/26_numerics/valarray/83860.cc: New.
685
686 * testsuite/backward/strstream_move.cc: Remove duplicate function
687 call.
688
689 PR libstdc++/69608
690 * include/backward/strstream (strstreambuf): Define move constructor
691 and move assignment operator.
692 (istrstream, ostrstream, strstream): Likewise.
693 * testsuite/backward/strstream_move.cc: New.
694
695 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
696
697 PR libstdc++/84654
698 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
699 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
700 * configure: Regenerate.
701 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
702 based on ENABLE_FLOAT128.
703 * include/Makefile.in: Regenerate.
704 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
705 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
706 _GLIBCXX_USE_FLOAT128.
707
708 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
709
710 * configure: Regenerated.
711
712 2018-04-19 Jakub Jelinek <jakub@redhat.com>
713
714 * configure: Regenerated.
715
716 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
717 Jakub Jelinek <jakub@redhat.com>
718
719 PR libstdc++/85442
720 * src/c++11/Makefile.am: Don't generate debuginfo again for
721 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
722 * src/c++11/Makefile.in: Regenerate.
723
724 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
725
726 PR libstdc++/84442
727 * testsuite/30_threads/thread/cons/terminate.cc
728 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
729
730 2018-04-18 David Malcolm <dmalcolm@redhat.com>
731
732 PR jit/85384
733 * configure: Regenerate.
734
735 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
736
737 * testsuite/experimental/filesystem/file_status/1.cc: Add
738 -DUSE_FILESYSTEM_TS to dg-options.
739 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
740 Likewise.
741 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
742 * testsuite/experimental/filesystem/iterators/
743 recursive_directory_iterator.cc: Likewise.
744 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
745 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
746 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
747 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
748 * testsuite/experimental/filesystem/operations/create_directories.cc:
749 Likewise.
750 * testsuite/experimental/filesystem/operations/create_directory.cc:
751 Likewise.
752 * testsuite/experimental/filesystem/operations/create_symlink.cc:
753 Likewise.
754 * testsuite/experimental/filesystem/operations/current_path.cc:
755 Likewise.
756 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
757 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
758 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
759 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
760 * testsuite/experimental/filesystem/operations/last_write_time.cc:
761 Likewise.
762 * testsuite/experimental/filesystem/operations/permissions.cc:
763 Likewise.
764 * testsuite/experimental/filesystem/operations/read_symlink.cc:
765 Likewise.
766 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
767 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
768 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
769 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
770 Likewise.
771 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
772 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
773 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
774 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
775 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
776 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
777 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
778 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
779 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
780 * testsuite/experimental/filesystem/path/construct/default.cc:
781 Likewise.
782 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
783 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
784 * testsuite/experimental/filesystem/path/construct/string_view.cc:
785 Likewise.
786 * testsuite/experimental/filesystem/path/decompose/extension.cc:
787 Likewise.
788 * testsuite/experimental/filesystem/path/decompose/filename.cc:
789 Likewise.
790 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
791 Likewise.
792 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
793 Likewise.
794 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
795 Likewise.
796 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
797 Likewise.
798 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
799 Likewise.
800 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
801 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
802 Likewise.
803 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
804 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
805 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
806 Likewise.
807 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
808 Likewise.
809 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
810 Likewise.
811 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
812 Likewise.
813 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
814 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
815 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
816 Likewise.
817 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
818 * testsuite/experimental/filesystem/path/query/has_extension.cc:
819 Likewise.
820 * testsuite/experimental/filesystem/path/query/has_filename.cc:
821 Likewise.
822 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
823 Likewise.
824 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
825 Likewise.
826 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
827 Likewise.
828 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
829 Likewise.
830 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
831 Likewise.
832 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
833 * testsuite/experimental/filesystem/path/query/is_relative.cc:
834 Likewise.
835
836 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
837
838 * src/c++11/Makefile.am: Fix sed command.
839 * src/c++11/Makefile.in: Regenerate.
840
841 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
842 handle mangled names starting with double underscores on darwin.
843 * src/c++11/Makefile.in: Regenerate.
844
845 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
846
847 * src/c++11/Makefile.am: Fix comment.
848 * src/c++11/Makefile.in: Regenerate.
849 * src/c++11/cxx11-ios_failure.cc: Fix comment.
850 * src/c++98/ios_failure.cc: Likewise.
851
852 * src/c++11/ios.cc: Remove redundant macro definition.
853
854 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
855
856 * doc/xml/manual/abi.xml: Document header locations in recent
857 releases.
858 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
859 * doc/xml/manual/spine.xml: Update copyright years.
860 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
861 undefined behaviour.
862 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
863 * doc/html/*: Regenerate.
864
865 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
866
867 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
868 * doc/xml/manual/backwards_compatibility.xml: Likewise.
869 * doc/xml/manual/containers.xml: Likewise.
870 * doc/xml/manual/debug_mode.xml: Likewise.
871 * doc/xml/manual/extensions.xml: Likewise.
872 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
873 * doc/xml/manual/using.xml: Likewise.
874 * doc/xml/manual/utilities.xml: Likewise.
875
876 PR libstdc++/85222
877 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
878 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
879 * src/c++11/Makefile.in: Regenerate.
880 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
881 New types.
882 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
883 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
884 * src/c++98/ios_failure.cc (__construct_ios_failure)
885 (__destroy_ios_failure, is_ios_failure_handler): New functions.
886 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
887 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
888 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
889 handler types, to always catch std::ios_base::failure.
890 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
891 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
892 exceptions_failbit.cc: Likewise.
893 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
894 exceptions_failbit.cc: Likewise.
895 * testsuite/27_io/basic_istream/extractors_other/char/
896 exceptions_null.cc: Likewise.
897 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
898 exceptions_null.cc: Likewise.
899 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
900 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
901 * testsuite/27_io/basic_ostream/inserters_other/char/
902 exceptions_null.cc: Likewise.
903 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
904 exceptions_null.cc: Likewise.
905 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
906
907 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
908
909 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
910 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
911
912 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
913
914 PR libstdc++/85183
915 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
916 value categories.
917 * testsuite/20_util/variant/85183.cc: New.
918
919 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
920
921 * include/std/variant (__get): Qualify calls to avoid ADL.
922 (__select_index): Adjust whitespace.
923 (variant): Add using-declaration to workaround Clang bug.
924
925 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
926
927 PR libstdc++/85040
928 * include/bits/stl_function.h (greater::__not_overloaded)
929 (less::__not_overloaded, greater_equal::__not_overloaded)
930 (less_equal::__not_overloaded): Fix ambiguous specializations.
931 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
932 tests for type with overloaded operators.
933
934 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
935
936 PR libstdc++/77691
937 * testsuite/experimental/memory_resource/resource_adaptor.cc:
938 xfail execution on 32-bit Solaris/x86.
939
940 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
941
942 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
943 VERIFY instead of assert.
944 * testsuite/20_util/hash/84998.cc: New test.
945 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
946 copy of test adjusted for Debug Mode.
947 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
948 test in Debug Mode.
949
950 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
951
952 PR libstdc++/84998
953 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
954 * include/std/bitset: Likewise.
955 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
956 declaration.
957 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
958 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
959 * include/bits/stl_set.h (std::set<>): Likewise.
960 * include/bits/unordered_map.h (std::unordered_map<>): Fix
961 _Hash_merge_helper friend declaration.
962 (std::unordered_multimap<>): Likewise.
963 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
964 (std::unordered_multiset<>): Likewise.
965
966 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
967
968 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
969 trailing slash for domain level link.
970 * doc/xml/faq.xml: Ditto.
971 * doc/xml/manual/appendix_free.xml (software): Ditto.
972 * doc/xml/manual/intro.xml: Ditto.
973 * doc/xml/manual/spine.xml: Ditto.
974 * doc/xml/spine.xml: Ditto.
975
976 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
977
978 * doc/xml/manual/documentation_hacking.xml: Adjust link to
979 docbook.org.
980
981 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
982
983 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
984 to compile as C++98.
985
986 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
987
988 PR libstdc++/78420
989 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
990 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
991 to ensure total order for pointers.
992 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
993 Add operator() overloads for pointer arguments and make generic
994 overloads dispatch to new _S_cmp functions when comparisons would
995 use built-in operators for pointers.
996 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
997
998 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
999
1000 PR libstdc++/84773
1001 PR libstdc++/83662
1002 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
1003 * configure: Regenerate.
1004 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
1005 (aligned_alloc): Add using-declaration.
1006 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
1007
1008 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
1009
1010 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
1011 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
1012 registration.
1013
1014 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
1015
1016 PR libstdc++/84769
1017 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
1018 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
1019
1020 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
1021 src/filesystem/std-ops.cc (create_dir): Likewise.
1022
1023 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
1024
1025 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
1026 (StdListIteratorPrinter): Inherit from latter.
1027 (StdFwdListIteratorPrinter): New, inherit from latter.
1028 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
1029 when iterator has no associated container.
1030 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
1031 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
1032 registrations.
1033 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
1034 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
1035
1036 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
1037
1038 PR libstdc++/84601
1039 * include/std/optional (_Optional_payload): Split into multiple
1040 specializations that can handle different cases of trivial or
1041 non-trivial assignment operators.
1042 * testsuite/20_util/optional/84601.cc: New.
1043 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1044
1045 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
1046
1047 PR libstdc++/84671
1048 * include/bits/parse_numbers.h (_Number_help): Add partial
1049 specialization to handle digit separators. Adjust partial
1050 specialization for recursion temrination to require _Pow == 1ULL.
1051 * testsuite/20_util/duration/literals/84671.cc: New
1052
1053 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
1054
1055 Implement the missing bits of LWG 2769
1056 * include/std/any (any_cast(const any&)): Add static_assert.
1057 (any_cast(any&)): Likewise.
1058 (any_cast(any&&)): Likewise, and remove the handling
1059 for copyable-but-not-movable type.
1060 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
1061 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
1062 add new tests.
1063
1064 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
1065
1066 PR libstdc++/84532
1067 * include/std/thread (thread::__make_invoker): Construct tuple
1068 directly instead of using make_tuple.
1069 * testsuite/30_threads/async/84532.cc: New.
1070 * testsuite/30_threads/thread/84532.cc: New.
1071
1072 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
1073
1074 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
1075 (template<> __aligned_buffer): Define as __aligned_membuf alias.
1076
1077 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1078
1079 PR target/84148
1080 * configure: Regenerate.
1081
1082 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
1083
1084 PR libstdc++/81797
1085 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
1086 * configure: Regenerate.
1087 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
1088 defined.
1089 * include/Makefile.in: Regenerate.
1090
1091 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
1092
1093 PR libstdc++/83833
1094 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1095 Add -ffloat-store to options for m68k and ia32.
1096
1097 * doc/xml/faq.xml: Update copyright years.
1098 * doc/html/*: Regenerate.
1099
1100 PR libstdc++/83658
1101 * include/std/any (any::__do_emplace): Only set _M_manager after
1102 constructing the contained object.
1103 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
1104 * testsuite/20_util/any/modifiers/83658.cc: New test.
1105
1106 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
1107
1108 PR libstdc++/81076
1109 * include/c_global/cstddef (__byte_operand): Define primary template.
1110 * testsuite/18_support/byte/81076.cc: New test.
1111
1112 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
1113
1114 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
1115 dg-options and dg-add-options order.
1116 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
1117 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
1118 Likewise.
1119 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1120 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1121 Likewise.
1122 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1123 Likewise.
1124 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1125 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
1126 Likewise.
1127 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
1128 Likewise.
1129 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
1130 Likewise.
1131 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
1132 Likewise.
1133 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
1134 Likewise.
1135 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
1136 Likewise.
1137 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
1138 Likewise.
1139 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
1140 Likewise.
1141 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1142 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1143 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1144 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
1145 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1146 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1147 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1148 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1149 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
1150 Likewise.
1151 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
1152 Likewise.
1153 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
1154 Likewise.
1155 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
1156 Likewise.
1157
1158 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
1159
1160 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
1161 include linux/types.h when checking linux/random.h header.
1162 * config.h.in: Regenerate.
1163 * configure: Ditto.
1164 * src/c++11/random.cc: Conditionally include linux/types.h.
1165
1166 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
1167
1168 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
1169
1170 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
1171
1172 PR libstdc++/83834
1173 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
1174 pattern with exact match for std::cerr.
1175
1176 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
1177
1178 PR libstdc++/83833
1179 * include/bits/random.h (chi_squared_distribution::param): Update
1180 gamma distribution parameter.
1181 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
1182 test.
1183
1184 PR libstdc++/83830
1185 * include/std/type_traits (has_unique_object_representations_v): Add
1186 variable template.
1187 * testsuite/20_util/has_unique_object_representations/value.cc: Check
1188 variable template.
1189
1190 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1191
1192 Make optional conditionally
1193 trivially_{copy,move}_{constructible,assignable}
1194 * include/std/optional (_Optional_payload): Fix the comment in
1195 the class head and turn into a primary and one specialization.
1196 (_Optional_payload::_M_engaged): Strike the NSDMI.
1197 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
1198 New.
1199 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
1200 Likewise.
1201 (_Optional_payload<_Tp, false>::_M_get): Likewise.
1202 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
1203 (_Optional_base_impl): Likewise.
1204 (_Optional_base): Turn into a primary and three specializations.
1205 (optional(nullopt)): Change the base init.
1206 * testsuite/20_util/optional/assignment/8.cc: New.
1207 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
1208 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
1209
1210 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
1211
1212 PR libstdc++/80276
1213 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
1214 (get_template_arg_list): New.
1215 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
1216 instead.
1217 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
1218 of strings and regular expressions.
1219 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
1220 (FilteringTypePrinter): Add docstring. Match using startswith. Use
1221 strip_inline_namespaces instead of strip_versioned_namespace.
1222 (add_one_type_printer): Prepend namespace to match argument.
1223 (register_type_printers): Add type printers for char16_t and char32_t
1224 string types and for types using cxx11 ABI. Update calls to
1225 add_one_template_type_printer to provide default argument dicts.
1226 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
1227 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
1228 basic_string<unsigned char> and basic_string<signed char>.
1229 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
1230 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
1231
1232 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
1233
1234 PR libstdc++/81092
1235 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1236
1237 2018-01-13 Tim Shen <timshen@google.com>
1238
1239 PR libstdc++/83601
1240 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
1241 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
1242 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
1243
1244 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1245
1246 PR libstdc++/64054
1247 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
1248 Remove dg-xfail-run-if.
1249
1250 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
1251
1252 * include/bits/forward_list.h
1253 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
1254 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
1255 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
1256 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
1257 (_Fwd_list_impl()): Add noexcept qualification.
1258 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
1259 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
1260 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
1261 (_Fwd_list_base()): Default.
1262 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
1263 (_Fwd_list_base(_Fwd_list_base&&)): Default.
1264 (forward_list<>()): Default.
1265 (forward_list<>(forward_list&&)): Default.
1266 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
1267 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
1268 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
1269 * include/bits/forward_list.tcc
1270 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
1271 _M_impl._M_head move assignment.
1272 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
1273 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
1274
1275 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
1276
1277 PR libstdc++/80276
1278 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
1279 (UniquePointerPrinter): Print correct template argument, not type of
1280 the pointer.
1281 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
1282 a type.
1283 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
1284 array type.
1285 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
1286 weak_ptr of array types.
1287
1288 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
1289
1290 PR libstdc++/83709
1291 * include/bits/hashtable_policy.h
1292 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
1293 __first != __last.
1294 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
1295 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
1296 Add false_type parameter.
1297 (_Insert_base::insert): Adapt.
1298 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
1299 Adapt.
1300 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
1301 Add __n_elt parameter, defaulted to 1.
1302 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
1303 policy _M_need_rehash.
1304 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
1305 produce only 1 rehash if necessary.
1306 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
1307 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
1308
1309 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
1310 Jonathan Wakely <jwakely@redhat.com>
1311
1312 PR libstdc++/59253 (partial)
1313 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
1314 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
1315 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
1316 children.
1317 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
1318 of unique_ptr printer.
1319 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
1320 output of shared_ptr printer.
1321
1322 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
1323
1324 PR libstdc++/83626
1325 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
1326 unnecessary symlink_status call.
1327 (remove_all(const path&, error_code&)): Use filesystem::remove.
1328 * src/filesystem/std-ops.cc: Likewise.
1329
1330 PR libstdc++/83279
1331 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
1332 sendfile.
1333
1334 PR libstdc++/83626
1335 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
1336 report an error for ENOENT.
1337 (remove_all(const path&)): Fix type of result variable.
1338 (remove_all(const path&, error_code&)): Use non-throwing increment
1339 for directory iterator. Call POSIX remove directly to avoid redundant
1340 calls to symlink_status. Do not report errors for ENOENT.
1341 * src/filesystem/std-ops.cc: Likewise.
1342 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
1343 overload.
1344 * testsuite/experimental/filesystem/operations/remove_all.cc:
1345 Likewise.
1346
1347 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
1348
1349 PR libstdc++/83626
1350 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
1351 redundant call to ec.clear().
1352 (remove_all(const path&, error_code&))): Do not return an error for
1353 non-existent paths.
1354 * src/filesystem/std-ops.cc: Likewise.
1355 * testsuite/27_io/filesystem/operations/remove.cc: New test.
1356 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
1357 results for non-existent paths.
1358 * testsuite/experimental/filesystem/operations/remove.cc: New test.
1359 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
1360 expected results for non-existent paths.
1361
1362 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
1363 check status_known once.
1364 * include/experimental/bits/fs_ops.h: Likewise.
1365
1366 PR libstdc++/83607
1367 * include/std/functional (__is_byte_like): New trait.
1368 (__is_std_equal_to): Remove.
1369 (__boyer_moore_base_t): Use __is_byte_like instead of
1370 __is_std_equal_to.
1371 * include/experimental/functional (__is_std_equal_to): Remove.
1372 (__boyer_moore_base_t): Use __is_byte_like instead of
1373 __is_std_equal_to.
1374 * testsuite/20_util/function_objects/83607.cc: New test.
1375
1376 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1377
1378 Protect optional's deduction guide with the feature macro
1379 * include/std/optional: Use the feature macro.
1380
1381 2018-01-03 Jakub Jelinek <jakub@redhat.com>
1382
1383 Update copyright years.
1384 \f
1385 Copyright (C) 2018 Free Software Foundation, Inc.
1386
1387 Copying and distribution of this file, with or without modification,
1388 are permitted in any medium without royalty provided the copyright
1389 notice and this notice are preserved.