1 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
3 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
5 (_Safe_iterator<>::_S_constant()): ...that.
6 * include/debug/safe_local_iterator.h
7 (_Safe_local_iterator<>::_M_constant()): Rename in...
8 (_Safe_local_iterator<>::_S_constant()): ...that.
9 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
10 (_Iterator_state::__rbegin): New.
11 (_Iterator_state::__rmiddle): New.
12 (_Iterator_state::__rend): New.
13 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
14 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
16 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
17 _Is_iterator)): Likewise.
18 (_Parameter::_S_reverse_state(_Iterator_state)): New.
19 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
21 (_Parameter(std::reverse_iterator<> const&, const char*,
23 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
24 const char*, _Is_iterator)): New.
25 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
27 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
29 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
30 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
31 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
33 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
35 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
36 Use constexpr if in C++17 mode.
37 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
38 Copy from const object.
39 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
41 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
43 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
44 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
47 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
48 * include/debug/functions.h (__check_valid_range): Use latter.
49 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
52 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
53 * include/debug/forward_list
54 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
57 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
59 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
61 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
62 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
64 * include/debug/multimap.h
65 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
66 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
67 const _Alloc&)): Likewise.
69 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
70 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
72 * include/debug/multiset.h
73 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
74 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
75 const _Alloc&)): Likewise.
76 * include/debug/string
77 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
79 * include/debug/unordered_map
80 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
82 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
83 const _Alloc&)): Likewise.
84 * include/debug/unordered_set
85 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
87 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
88 const _Alloc&)): Likewise.
89 * include/debug/vector
90 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
92 * include/debug/formatter.h (_Error_formatter::_M_function): New.
93 (_Error_formatter(const char*, unsigned int)): Adapt.
94 (_Error_formatter::_M_at): Rename in...
95 (_Error_formatter::_S_at): ...that and adapt.
96 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
97 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
98 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
101 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
103 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
104 Use normal std::vector even in Debug Mode.
107 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
108 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
109 * include/Makefile.in: Regenerate.
110 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
111 within conditional block.
113 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
115 * doc/xml/manual/using.xml (table.cmd_options): Document that the
116 C++17 Filesystem implementation also needs -lstdc++fs.
119 * include/bits/fs_path.h (operator/): Permit copy elision.
120 * include/experimental/bits/fs_path.h (operator/): Likewise.
122 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
124 Moar PR libstdc++/80506
125 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
126 Fix magic number used in loop condition.
128 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
130 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
131 * include/std/optional (_Optional_payload): Add noexcept to default
132 constructor. Re-indent.
133 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
134 constructor for copying disengaged payloads.
135 (_Optional_payload<_Tp, true, false, true>): Likewise.
136 (_Optional_payload<_Tp, true, true, false>): Likewise.
137 (_Optional_payload<_Tp, true, false, false>): Likewise.
138 * testsuite/20_util/optional/cons/85642.cc: New.
139 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
141 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
144 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
145 inline definitions instead of using-declarations.
146 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
147 * testsuite/tr1/5_numerical_facilities/special_functions/
148 07_conf_hyperg/compile_cxx17.cc: New.
149 * testsuite/tr1/5_numerical_facilities/special_functions/
150 17_hyperg/compile_cxx17.cc: New.
153 * include/std/variant (visit): Qualify std::get call.
155 PR libstdc++/85632 use uintmax_t for arithmetic
156 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
157 arithmetic in result type.
158 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
159 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
160 is greater than free space.
161 * testsuite/experimental/filesystem/operations/space.cc: New.
163 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
164 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
166 * testsuite/20_util/remove_cvref/value.cc: New.
167 * testsuite/20_util/remove_cvref/value_ext.cc: New.
169 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
170 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
171 (append(const basic_string&, size_type, size_type)
172 (assign(const basic_string&, size_type, size_type)
173 (insert(size_type, const basic_string&, size_type, size_type)
174 (replace(size_type,size_type,const basic_string&,size_type,size_type)
175 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
176 Add default arguments (LWG 2268).
177 [_GLIBCXX_USE_CXX11_ABI=0]
178 (append(const basic_string&, size_type, size_type)
179 (assign(const basic_string&, size_type, size_type)
180 (insert(size_type, const basic_string&, size_type, size_type)
181 (replace(size_type,size_type,const basic_string&,size_type,size_type)
182 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
184 * testsuite/21_strings/basic_string/dr2268.cc: New test.
187 * include/std/thread (thread::__not_same): New SFINAE helper.
188 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
189 first argument is not a std::thread. Add static assertion to check
190 INVOKE expression is valid.
191 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
192 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
193 __invoke_result for return types and remove exception specifications.
194 * testsuite/30_threads/thread/cons/84535.cc: New.
196 * include/std/future (__async_result_of): Use __invoke_result instead
199 * include/std/any (any_cast): Use __remove_cvref_t.
200 * include/std/tuple (__make_tuple): Likewise.
201 * include/std/type_traits (__remove_cvref_t): Define.
202 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
203 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
204 * include/std/variant (__erased_hash): Use __remove_cvref_t.
206 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
208 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
209 ensure overloaded comma not used.
210 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
211 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
212 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
213 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
214 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
215 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
216 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
218 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
221 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
223 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
224 as failure. Refactor error handling.
225 * testsuite/27_io/ios_base/storage/68197.cc: New.
229 * include/bits/gslice_array.h (gslice_array): Define default
230 constructor as deleted, as per C++11 standard.
231 * include/bits/mask_array.h (mask_array): Likewise.
232 * include/bits/slice_array.h (slice_array): Likewise.
233 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
234 to namespace __detail.
235 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
237 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
238 of data members in closure objects.
239 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
240 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
242 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
243 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
244 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
245 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
246 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
247 using-declarations to namespace std.
248 * testsuite/26_numerics/valarray/83860.cc: New.
250 * testsuite/backward/strstream_move.cc: Remove duplicate function
254 * include/backward/strstream (strstreambuf): Define move constructor
255 and move assignment operator.
256 (istrstream, ostrstream, strstream): Likewise.
257 * testsuite/backward/strstream_move.cc: New.
259 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
262 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
263 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
264 * configure: Regenerate.
265 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
266 based on ENABLE_FLOAT128.
267 * include/Makefile.in: Regenerate.
268 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
269 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
270 _GLIBCXX_USE_FLOAT128.
272 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
274 * configure: Regenerated.
276 2018-04-19 Jakub Jelinek <jakub@redhat.com>
278 * configure: Regenerated.
280 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
281 Jakub Jelinek <jakub@redhat.com>
284 * src/c++11/Makefile.am: Don't generate debuginfo again for
285 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
286 * src/c++11/Makefile.in: Regenerate.
288 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
291 * testsuite/30_threads/thread/cons/terminate.cc
292 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
294 2018-04-18 David Malcolm <dmalcolm@redhat.com>
297 * configure: Regenerate.
299 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
301 * testsuite/experimental/filesystem/file_status/1.cc: Add
302 -DUSE_FILESYSTEM_TS to dg-options.
303 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
305 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
306 * testsuite/experimental/filesystem/iterators/
307 recursive_directory_iterator.cc: Likewise.
308 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
309 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
310 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
311 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
312 * testsuite/experimental/filesystem/operations/create_directories.cc:
314 * testsuite/experimental/filesystem/operations/create_directory.cc:
316 * testsuite/experimental/filesystem/operations/create_symlink.cc:
318 * testsuite/experimental/filesystem/operations/current_path.cc:
320 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
321 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
322 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
323 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
324 * testsuite/experimental/filesystem/operations/last_write_time.cc:
326 * testsuite/experimental/filesystem/operations/permissions.cc:
328 * testsuite/experimental/filesystem/operations/read_symlink.cc:
330 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
331 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
332 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
333 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
335 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
336 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
337 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
338 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
339 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
340 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
341 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
342 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
343 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
344 * testsuite/experimental/filesystem/path/construct/default.cc:
346 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
347 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
348 * testsuite/experimental/filesystem/path/construct/string_view.cc:
350 * testsuite/experimental/filesystem/path/decompose/extension.cc:
352 * testsuite/experimental/filesystem/path/decompose/filename.cc:
354 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
356 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
358 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
360 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
362 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
364 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
365 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
367 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
368 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
369 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
371 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
373 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
375 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
377 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
378 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
379 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
381 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
382 * testsuite/experimental/filesystem/path/query/has_extension.cc:
384 * testsuite/experimental/filesystem/path/query/has_filename.cc:
386 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
388 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
390 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
392 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
394 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
396 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
397 * testsuite/experimental/filesystem/path/query/is_relative.cc:
400 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
402 * src/c++11/Makefile.am: Fix sed command.
403 * src/c++11/Makefile.in: Regenerate.
405 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
406 handle mangled names starting with double underscores on darwin.
407 * src/c++11/Makefile.in: Regenerate.
409 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
411 * src/c++11/Makefile.am: Fix comment.
412 * src/c++11/Makefile.in: Regenerate.
413 * src/c++11/cxx11-ios_failure.cc: Fix comment.
414 * src/c++98/ios_failure.cc: Likewise.
416 * src/c++11/ios.cc: Remove redundant macro definition.
418 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
420 * doc/xml/manual/abi.xml: Document header locations in recent
422 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
423 * doc/xml/manual/spine.xml: Update copyright years.
424 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
426 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
427 * doc/html/*: Regenerate.
429 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
431 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
432 * doc/xml/manual/backwards_compatibility.xml: Likewise.
433 * doc/xml/manual/containers.xml: Likewise.
434 * doc/xml/manual/debug_mode.xml: Likewise.
435 * doc/xml/manual/extensions.xml: Likewise.
436 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
437 * doc/xml/manual/using.xml: Likewise.
438 * doc/xml/manual/utilities.xml: Likewise.
441 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
442 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
443 * src/c++11/Makefile.in: Regenerate.
444 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
446 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
447 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
448 * src/c++98/ios_failure.cc (__construct_ios_failure)
449 (__destroy_ios_failure, is_ios_failure_handler): New functions.
450 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
451 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
452 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
453 handler types, to always catch std::ios_base::failure.
454 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
455 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
456 exceptions_failbit.cc: Likewise.
457 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
458 exceptions_failbit.cc: Likewise.
459 * testsuite/27_io/basic_istream/extractors_other/char/
460 exceptions_null.cc: Likewise.
461 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
462 exceptions_null.cc: Likewise.
463 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
464 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
465 * testsuite/27_io/basic_ostream/inserters_other/char/
466 exceptions_null.cc: Likewise.
467 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
468 exceptions_null.cc: Likewise.
469 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
471 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
473 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
474 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
476 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
479 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
481 * testsuite/20_util/variant/85183.cc: New.
483 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
485 * include/std/variant (__get): Qualify calls to avoid ADL.
486 (__select_index): Adjust whitespace.
487 (variant): Add using-declaration to workaround Clang bug.
489 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
492 * include/bits/stl_function.h (greater::__not_overloaded)
493 (less::__not_overloaded, greater_equal::__not_overloaded)
494 (less_equal::__not_overloaded): Fix ambiguous specializations.
495 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
496 tests for type with overloaded operators.
498 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
501 * testsuite/experimental/memory_resource/resource_adaptor.cc:
502 xfail execution on 32-bit Solaris/x86.
504 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
506 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
507 VERIFY instead of assert.
508 * testsuite/20_util/hash/84998.cc: New test.
509 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
510 copy of test adjusted for Debug Mode.
511 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
514 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
517 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
518 * include/std/bitset: Likewise.
519 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
521 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
522 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
523 * include/bits/stl_set.h (std::set<>): Likewise.
524 * include/bits/unordered_map.h (std::unordered_map<>): Fix
525 _Hash_merge_helper friend declaration.
526 (std::unordered_multimap<>): Likewise.
527 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
528 (std::unordered_multiset<>): Likewise.
530 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
532 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
533 trailing slash for domain level link.
534 * doc/xml/faq.xml: Ditto.
535 * doc/xml/manual/appendix_free.xml (software): Ditto.
536 * doc/xml/manual/intro.xml: Ditto.
537 * doc/xml/manual/spine.xml: Ditto.
538 * doc/xml/spine.xml: Ditto.
540 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
542 * doc/xml/manual/documentation_hacking.xml: Adjust link to
545 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
547 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
550 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
553 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
554 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
555 to ensure total order for pointers.
556 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
557 Add operator() overloads for pointer arguments and make generic
558 overloads dispatch to new _S_cmp functions when comparisons would
559 use built-in operators for pointers.
560 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
562 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
566 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
567 * configure: Regenerate.
568 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
569 (aligned_alloc): Add using-declaration.
570 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
572 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
574 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
575 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
578 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
581 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
582 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
584 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
585 src/filesystem/std-ops.cc (create_dir): Likewise.
587 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
589 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
590 (StdListIteratorPrinter): Inherit from latter.
591 (StdFwdListIteratorPrinter): New, inherit from latter.
592 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
593 when iterator has no associated container.
594 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
595 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
597 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
598 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
600 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
603 * include/std/optional (_Optional_payload): Split into multiple
604 specializations that can handle different cases of trivial or
605 non-trivial assignment operators.
606 * testsuite/20_util/optional/84601.cc: New.
607 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
609 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
612 * include/bits/parse_numbers.h (_Number_help): Add partial
613 specialization to handle digit separators. Adjust partial
614 specialization for recursion temrination to require _Pow == 1ULL.
615 * testsuite/20_util/duration/literals/84671.cc: New
617 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
619 Implement the missing bits of LWG 2769
620 * include/std/any (any_cast(const any&)): Add static_assert.
621 (any_cast(any&)): Likewise.
622 (any_cast(any&&)): Likewise, and remove the handling
623 for copyable-but-not-movable type.
624 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
625 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
628 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
631 * include/std/thread (thread::__make_invoker): Construct tuple
632 directly instead of using make_tuple.
633 * testsuite/30_threads/async/84532.cc: New.
634 * testsuite/30_threads/thread/84532.cc: New.
636 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
638 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
639 (template<> __aligned_buffer): Define as __aligned_membuf alias.
641 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
644 * configure: Regenerate.
646 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
649 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
650 * configure: Regenerate.
651 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
653 * include/Makefile.in: Regenerate.
655 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
658 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
659 Add -ffloat-store to options for m68k and ia32.
661 * doc/xml/faq.xml: Update copyright years.
662 * doc/html/*: Regenerate.
665 * include/std/any (any::__do_emplace): Only set _M_manager after
666 constructing the contained object.
667 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
668 * testsuite/20_util/any/modifiers/83658.cc: New test.
670 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
673 * include/c_global/cstddef (__byte_operand): Define primary template.
674 * testsuite/18_support/byte/81076.cc: New test.
676 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
678 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
679 dg-options and dg-add-options order.
680 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
681 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
683 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
684 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
686 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
688 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
689 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
691 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
693 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
695 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
697 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
699 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
701 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
703 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
705 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
706 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
707 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
708 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
709 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
710 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
711 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
712 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
713 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
715 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
717 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
719 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
722 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
724 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
725 include linux/types.h when checking linux/random.h header.
726 * config.h.in: Regenerate.
728 * src/c++11/random.cc: Conditionally include linux/types.h.
730 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
732 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
734 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
737 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
738 pattern with exact match for std::cerr.
740 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
743 * include/bits/random.h (chi_squared_distribution::param): Update
744 gamma distribution parameter.
745 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
749 * include/std/type_traits (has_unique_object_representations_v): Add
751 * testsuite/20_util/has_unique_object_representations/value.cc: Check
754 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
756 Make optional conditionally
757 trivially_{copy,move}_{constructible,assignable}
758 * include/std/optional (_Optional_payload): Fix the comment in
759 the class head and turn into a primary and one specialization.
760 (_Optional_payload::_M_engaged): Strike the NSDMI.
761 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
763 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
765 (_Optional_payload<_Tp, false>::_M_get): Likewise.
766 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
767 (_Optional_base_impl): Likewise.
768 (_Optional_base): Turn into a primary and three specializations.
769 (optional(nullopt)): Change the base init.
770 * testsuite/20_util/optional/assignment/8.cc: New.
771 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
772 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
774 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
777 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
778 (get_template_arg_list): New.
779 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
781 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
782 of strings and regular expressions.
783 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
784 (FilteringTypePrinter): Add docstring. Match using startswith. Use
785 strip_inline_namespaces instead of strip_versioned_namespace.
786 (add_one_type_printer): Prepend namespace to match argument.
787 (register_type_printers): Add type printers for char16_t and char32_t
788 string types and for types using cxx11 ABI. Update calls to
789 add_one_template_type_printer to provide default argument dicts.
790 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
791 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
792 basic_string<unsigned char> and basic_string<signed char>.
793 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
794 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
796 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
799 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
801 2018-01-13 Tim Shen <timshen@google.com>
804 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
805 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
806 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
808 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
811 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
812 Remove dg-xfail-run-if.
814 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
816 * include/bits/forward_list.h
817 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
818 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
819 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
820 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
821 (_Fwd_list_impl()): Add noexcept qualification.
822 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
823 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
824 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
825 (_Fwd_list_base()): Default.
826 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
827 (_Fwd_list_base(_Fwd_list_base&&)): Default.
828 (forward_list<>()): Default.
829 (forward_list<>(forward_list&&)): Default.
830 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
831 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
832 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
833 * include/bits/forward_list.tcc
834 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
835 _M_impl._M_head move assignment.
836 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
837 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
839 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
842 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
843 (UniquePointerPrinter): Print correct template argument, not type of
845 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
847 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
849 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
850 weak_ptr of array types.
852 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
855 * include/bits/hashtable_policy.h
856 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
858 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
859 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
860 Add false_type parameter.
861 (_Insert_base::insert): Adapt.
862 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
864 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
865 Add __n_elt parameter, defaulted to 1.
866 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
867 policy _M_need_rehash.
868 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
869 produce only 1 rehash if necessary.
870 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
871 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
873 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
874 Jonathan Wakely <jwakely@redhat.com>
876 PR libstdc++/59253 (partial)
877 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
878 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
879 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
881 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
882 of unique_ptr printer.
883 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
884 output of shared_ptr printer.
886 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
889 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
890 unnecessary symlink_status call.
891 (remove_all(const path&, error_code&)): Use filesystem::remove.
892 * src/filesystem/std-ops.cc: Likewise.
895 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
899 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
900 report an error for ENOENT.
901 (remove_all(const path&)): Fix type of result variable.
902 (remove_all(const path&, error_code&)): Use non-throwing increment
903 for directory iterator. Call POSIX remove directly to avoid redundant
904 calls to symlink_status. Do not report errors for ENOENT.
905 * src/filesystem/std-ops.cc: Likewise.
906 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
908 * testsuite/experimental/filesystem/operations/remove_all.cc:
911 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
914 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
915 redundant call to ec.clear().
916 (remove_all(const path&, error_code&))): Do not return an error for
918 * src/filesystem/std-ops.cc: Likewise.
919 * testsuite/27_io/filesystem/operations/remove.cc: New test.
920 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
921 results for non-existent paths.
922 * testsuite/experimental/filesystem/operations/remove.cc: New test.
923 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
924 expected results for non-existent paths.
926 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
927 check status_known once.
928 * include/experimental/bits/fs_ops.h: Likewise.
931 * include/std/functional (__is_byte_like): New trait.
932 (__is_std_equal_to): Remove.
933 (__boyer_moore_base_t): Use __is_byte_like instead of
935 * include/experimental/functional (__is_std_equal_to): Remove.
936 (__boyer_moore_base_t): Use __is_byte_like instead of
938 * testsuite/20_util/function_objects/83607.cc: New test.
940 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
942 Protect optional's deduction guide with the feature macro
943 * include/std/optional: Use the feature macro.
945 2018-01-03 Jakub Jelinek <jakub@redhat.com>
947 Update copyright years.
949 Copyright (C) 2018 Free Software Foundation, Inc.
951 Copying and distribution of this file, with or without modification,
952 are permitted in any medium without royalty provided the copyright
953 notice and this notice are preserved.