1 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
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
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
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
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
26 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
28 * include/std/variant (__erased_dtor): Qualify call to __get.
30 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
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&)):
41 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
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&)):
50 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
53 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
56 * src/c++11/debug.cc: Remove backtrace usage.
58 2018-05-24 Maya Rashish <coypu@sdf.org>
61 * crossconfig.m4: Test for aligned_alloc on netbsd.
62 * configure: Regenerate.
64 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
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
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
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
103 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
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
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
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.
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
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.
145 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
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)):
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)):
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
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.
180 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
183 * include/bits/stl_tree.h
184 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
187 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
189 * src/filesystem/std-ops.cc (absolute): Report an error for empty
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.
196 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
197 dg-require-filesystem-ts.
200 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
201 initialize base class to avoid warnings.
203 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
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.
211 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
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:
228 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
230 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
232 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
234 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
236 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
238 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
240 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
243 2018-05-18 Jason Merrill <jason@redhat.com>
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
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.
259 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
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
267 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
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
273 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
276 * src/filesystem/path.cc (path::preferred_separator): Add used
278 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
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.
287 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
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
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:
305 * testsuite/26_numerics/random/independent_bits_engine/cons/
307 * testsuite/26_numerics/random/linear_congruential_engine/cons/
309 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
311 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
312 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
314 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
316 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
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.
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:
335 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
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:
343 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
344 * testsuite/experimental/filesystem/path/query/has_extension.cc:
346 * testsuite/experimental/filesystem/path/query/has_filename.cc:
348 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
350 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
352 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
354 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
356 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
358 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
359 * testsuite/experimental/filesystem/path/query/is_relative.cc:
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
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.
373 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
374 __invoke to prevent ADL.
376 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
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.
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.
391 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
392 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
395 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
397 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
399 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
402 * testsuite/20_util/variant/80165.cc: New.
404 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
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.
412 2018-05-10 Jason Merrill <jason@redhat.com>
414 * include/bits/regex_compiler.h (_S_cache_size): Change from
415 function to variable.
417 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
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.
427 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
430 * include/bits/c++config.h (__replacement_assert): Add linkage
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.
437 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
439 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
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
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*,
457 (_Parameter(std::reverse_iterator<> const&, const char*,
459 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
460 const char*, _Is_iterator)): New.
461 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
463 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
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.
469 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
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.
477 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
479 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
480 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
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,
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&)):
493 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
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&)):
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&)):
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&)):
515 * include/debug/unordered_map
516 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
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&)):
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.
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
537 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
539 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
540 Use normal std::vector even in Debug Mode.
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.
549 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
551 * doc/xml/manual/using.xml (table.cmd_options): Document that the
552 C++17 Filesystem implementation also needs -lstdc++fs.
555 * include/bits/fs_path.h (operator/): Permit copy elision.
556 * include/experimental/bits/fs_path.h (operator/): Likewise.
558 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
560 Moar PR libstdc++/80506
561 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
562 Fix magic number used in loop condition.
564 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
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.
577 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
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.
589 * include/std/variant (visit): Qualify std::get call.
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.
599 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
600 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
602 * testsuite/20_util/remove_cvref/value.cc: New.
603 * testsuite/20_util/remove_cvref/value_ext.cc: New.
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)):
620 * testsuite/21_strings/basic_string/dr2268.cc: New test.
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.
632 * include/std/future (__async_result_of): Use __invoke_result instead
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.
642 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
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.
654 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
657 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
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.
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
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
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.
686 * testsuite/backward/strstream_move.cc: Remove duplicate function
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.
695 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
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.
708 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
710 * configure: Regenerated.
712 2018-04-19 Jakub Jelinek <jakub@redhat.com>
714 * configure: Regenerated.
716 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
717 Jakub Jelinek <jakub@redhat.com>
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.
724 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
727 * testsuite/30_threads/thread/cons/terminate.cc
728 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
730 2018-04-18 David Malcolm <dmalcolm@redhat.com>
733 * configure: Regenerate.
735 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
737 * testsuite/experimental/filesystem/file_status/1.cc: Add
738 -DUSE_FILESYSTEM_TS to dg-options.
739 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
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:
750 * testsuite/experimental/filesystem/operations/create_directory.cc:
752 * testsuite/experimental/filesystem/operations/create_symlink.cc:
754 * testsuite/experimental/filesystem/operations/current_path.cc:
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:
762 * testsuite/experimental/filesystem/operations/permissions.cc:
764 * testsuite/experimental/filesystem/operations/read_symlink.cc:
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:
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:
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:
786 * testsuite/experimental/filesystem/path/decompose/extension.cc:
788 * testsuite/experimental/filesystem/path/decompose/filename.cc:
790 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
792 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
794 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
796 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
798 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
800 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
801 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
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:
807 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
809 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
811 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
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:
817 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
818 * testsuite/experimental/filesystem/path/query/has_extension.cc:
820 * testsuite/experimental/filesystem/path/query/has_filename.cc:
822 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
824 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
826 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
828 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
830 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
832 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
833 * testsuite/experimental/filesystem/path/query/is_relative.cc:
836 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
838 * src/c++11/Makefile.am: Fix sed command.
839 * src/c++11/Makefile.in: Regenerate.
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.
845 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
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.
852 * src/c++11/ios.cc: Remove redundant macro definition.
854 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
856 * doc/xml/manual/abi.xml: Document header locations in recent
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
862 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
863 * doc/html/*: Regenerate.
865 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
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.
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):
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.
907 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
909 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
910 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
912 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
915 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
917 * testsuite/20_util/variant/85183.cc: New.
919 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
921 * include/std/variant (__get): Qualify calls to avoid ADL.
922 (__select_index): Adjust whitespace.
923 (variant): Add using-declaration to workaround Clang bug.
925 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
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.
934 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
937 * testsuite/experimental/memory_resource/resource_adaptor.cc:
938 xfail execution on 32-bit Solaris/x86.
940 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
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
950 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
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
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.
966 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
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.
976 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
978 * doc/xml/manual/documentation_hacking.xml: Adjust link to
981 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
983 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
986 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
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.
998 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
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.
1008 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
1010 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
1011 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
1014 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
1017 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
1018 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
1020 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
1021 src/filesystem/std-ops.cc (create_dir): Likewise.
1023 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
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
1033 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
1034 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
1036 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
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.
1045 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
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
1053 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
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
1064 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
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.
1072 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
1074 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
1075 (template<> __aligned_buffer): Define as __aligned_membuf alias.
1077 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1080 * configure: Regenerate.
1082 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
1085 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
1086 * configure: Regenerate.
1087 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
1089 * include/Makefile.in: Regenerate.
1091 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
1094 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1095 Add -ffloat-store to options for m68k and ia32.
1097 * doc/xml/faq.xml: Update copyright years.
1098 * doc/html/*: Regenerate.
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.
1106 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
1109 * include/c_global/cstddef (__byte_operand): Define primary template.
1110 * testsuite/18_support/byte/81076.cc: New test.
1112 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
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:
1119 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1120 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1122 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1124 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1125 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
1127 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
1129 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
1131 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
1133 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
1135 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
1137 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
1139 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
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:
1151 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
1153 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
1155 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
1158 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
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.
1164 * src/c++11/random.cc: Conditionally include linux/types.h.
1166 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
1168 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
1170 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
1173 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
1174 pattern with exact match for std::cerr.
1176 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
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
1185 * include/std/type_traits (has_unique_object_representations_v): Add
1187 * testsuite/20_util/has_unique_object_representations/value.cc: Check
1190 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
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&)):
1199 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
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.
1210 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
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
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.
1232 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
1235 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1237 2018-01-13 Tim Shen <timshen@google.com>
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.
1244 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1247 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
1248 Remove dg-xfail-run-if.
1250 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
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.
1275 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
1278 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
1279 (UniquePointerPrinter): Print correct template argument, not type of
1281 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
1283 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
1285 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
1286 weak_ptr of array types.
1288 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
1291 * include/bits/hashtable_policy.h
1292 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
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<>)):
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.
1309 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
1310 Jonathan Wakely <jwakely@redhat.com>
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
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.
1322 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
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.
1331 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
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
1344 * testsuite/experimental/filesystem/operations/remove_all.cc:
1347 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
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
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.
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.
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
1371 * include/experimental/functional (__is_std_equal_to): Remove.
1372 (__boyer_moore_base_t): Use __is_byte_like instead of
1374 * testsuite/20_util/function_objects/83607.cc: New test.
1376 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
1378 Protect optional's deduction guide with the feature macro
1379 * include/std/optional: Use the feature macro.
1381 2018-01-03 Jakub Jelinek <jakub@redhat.com>
1383 Update copyright years.
1385 Copyright (C) 2018 Free Software Foundation, Inc.
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.