Define _GLIBCXX_USE_DEV_RANDOM as replacement for _GLIBCXX_USE_RANDOM_TR1
[gcc.git] / libstdc++-v3 / ChangeLog
1 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
2
3 * acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ...
4 (GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name.
5 Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1.
6 * config.h.in: Regenerate.
7 * configure: Regenerate.
8 * configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of
9 GLIBCXX_CHECK_RANDOM_TR1.
10 crossconfig.m4: Likewise.
11 * include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM
12 instead of _GLIBCXX_USE_RANDOM_TR1.
13 * testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
14
15 2018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16
17 * testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc.
18 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
19 Add dg-add-options net_ts.
20 * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise.
21 * testsuite/experimental/net/internet/address/v4/creation.cc: Likewise.
22 * testsuite/experimental/net/internet/address/v4/members.cc: Likewise.
23 * testsuite/experimental/net/internet/resolver/base.cc: Likewise.
24 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise.
25 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise.
26
27 2018-10-16 Jonathan Wakely <jwakely@redhat.com>
28
29 * testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
30 diagnostic to account for quotes around 'constexpr'.
31 * testsuite/23_containers/deque/capacity/max_size.cc: Define static
32 variable.
33 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
34
35 PR libstdc++/87618
36 * config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
37 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
38 optimisation to check constructor definition can be linked to.
39 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.
40
41 2018-10-15 Jonathan Wakely <jwakely@redhat.com>
42
43 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
44 account for change to glibc it_IT localedata (glibc bz#10797).
45
46 PR libstdc++/87587
47 * src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.
48
49 2018-10-15 François Dumont <fdumont@gcc.gnu.org>
50
51 * include/debug/vector (vector<>::cbegin()): Use C++11 direct
52 initialization.
53 (vector<>::cend()): Likewise.
54 (vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
55 consistent iterator comparison.
56 (vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
57 (vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
58 Likewise.
59 (vector<>::erase(const_iterator)): Likewise.
60 (vector<>::erase(const_iterator, const_iterator)): Likewise.
61
62 2018-10-12 Jonathan Wakely <jwakely@redhat.com>
63
64 Initial commit of Networking TS implementation.
65 * include/Makefile.am: Add new headers.
66 * include/Makefile.in: Regenerate.
67 * include/experimental/bits/net.h: New header for common
68 implementation details of Networking TS.
69 * include/experimental/buffer: New header.
70 * include/experimental/executor: New header.
71 * include/experimental/internet: New header.
72 * include/experimental/io_context: New header.
73 * include/experimental/net: New header.
74 * include/experimental/netfwd: New header.
75 * include/experimental/socket: New header.
76 * include/experimental/timer: New header.
77 * testsuite/experimental/net/buffer/arithmetic.cc: New test.
78 * testsuite/experimental/net/buffer/const.cc: New test.
79 * testsuite/experimental/net/buffer/creation.cc: New test.
80 * testsuite/experimental/net/buffer/mutable.cc: New test.
81 * testsuite/experimental/net/buffer/size.cc: New test.
82 * testsuite/experimental/net/buffer/traits.cc: New test.
83 * testsuite/experimental/net/execution_context/use_service.cc: New
84 test.
85 * testsuite/experimental/net/headers.cc: New test.
86 * testsuite/experimental/net/internet/address/v4/comparisons.cc: New
87 test.
88 * testsuite/experimental/net/internet/address/v4/cons.cc: New test.
89 * testsuite/experimental/net/internet/address/v4/creation.cc: New
90 test.
91 * testsuite/experimental/net/internet/address/v4/members.cc: New
92 test.
93 * testsuite/experimental/net/internet/resolver/base.cc: New test.
94 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
95 test.
96 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
97 test.
98 * testsuite/experimental/net/timer/waitable/cons.cc: New test.
99 * testsuite/experimental/net/timer/waitable/dest.cc: New test.
100 * testsuite/experimental/net/timer/waitable/ops.cc: New test.
101
102 PR libstdc++/77691
103 * include/experimental/memory_resource (__resource_adaptor_imp): Do
104 not allocate sizes smaller than alignment when relying on guaranteed
105 alignment.
106 * testsuite/experimental/memory_resource/new_delete_resource.cc:
107 Adjust expected number of bytes allocated for alignof(max_align_t).
108
109 2018-10-11 François Dumont <fdumont@gcc.gnu.org>
110
111 * include/debug/forward_list
112 (forward_list<>::before_begin()): Use C++11 direct initialization.
113 (forward_list<>::begin()): Likewise.
114 (forward_list<>::end()): Likewise.
115 (forward_list<>::cbefore_begin()): Likewise.
116 (forward_list<>::cbegin()): Likewise.
117 (forward_list<>::cend()): Likewise.
118 (forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
119 (forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
120 (forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
121 (forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
122 Likewise.
123 (forward_list<>::insert_after(const_iterator, initializer_list<>)):
124 Likewise.
125 (forward_list<>::erase_after(const_iterator)): Likewise.
126 (forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
127 and ensure consistent iterator comparison.
128
129 * include/bits/forward_list.h
130 (_Fwd_list_iterator<>::operator==): Replace member function with inline
131 friend.
132 (_Fwd_list_iterator<>::operator!=): Likewise.
133 (_Fwd_list_const_iterator<>::operator==): Likewise.
134 (_Fwd_list_const_iterator<>::operator!=): Likewise.
135 (operator==(const _Fwd_list_iterator<>&,
136 const _Fwd_list_const_iterator<>&)): Remove.
137 (operator!=(const _Fwd_list_iterator<>&,
138 const _Fwd_list_const_iterator<>&)): Remove.
139 (forward_list<>::_Node): Take typedef from base type.
140 (forward_list<>::iterator): Likewise.
141 (forward_list<>::const_iterator): Likewise.
142
143 2018-10-11 Jonathan Wakely <jwakely@redhat.com>
144
145 PR libstdc++/80538
146 * src/c++11/thread.cc (this_thread::__sleep_for)
147 [_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
148 Loop while sleep call is interrupted and until steady_clock
149 shows requested duration has elapsed.
150 (!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
151 avoiding the usleep call.
152 * testsuite/30_threads/this_thread/60421.cc: Test repeated
153 signal interruptions.
154
155 * include/bits/allocator.h
156 (operator==(const allocator<_Tp>&, const allocator<_Tp>))
157 (operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace
158 with inline friends.
159 * include/ext/debug_allocator.h (operator==, operator!=): Replace
160 with inline friend functions that compare to rebound allocators.
161 * include/ext/malloc_allocator.h (operator==, operator!=): Likewise.
162 * include/ext/new_allocator.h (operator==, operator!=): Likewise.
163 * testsuite/ext/debug_allocator/eq.cc: New test.
164 * testsuite/ext/ext_pointer/alloc_eq.cc: New test.
165 * testsuite/ext/malloc_allocator/eq.cc: New test.
166 * testsuite/ext/new_allocator/eq.cc: New test.
167
168 2018-10-10 Jonathan Wakely <jwakely@redhat.com>
169
170 PR libstdc++/87544
171 * include/bits/stl_vector.h (vector::_S_max_size): Limit size to
172 PTRDIFF_MAX / sizeof(value_type).
173 * include/ext/malloc_allocator.h (malloc_allocator::max_size):
174 Likewise.
175 * include/ext/new_allocator.h (new_allocator::max_size): Likewise.
176 * testsuite/23_containers/vector/allocator/minimal.cc: Adjust
177 expected value for max_size().
178 * testsuite/23_containers/vector/capacity/87544.cc: New test.
179
180 2018-10-09 François Dumont <fdumont@gcc.gnu.org>
181
182 * include/bits/stl_list.h
183 (_List_operator<>::operator==): Replace member function with inline
184 friend.
185 (_List_operator<>::operator!=): Likewise.
186 (_List_const_operator<>::operator==): Likewise.
187 (_List_const_operator<>::operator!=): Likewise.
188 (operator==(const _List_iterator<>&, const _List_const_iterator<>&)):
189 Remove.
190 (operator!=(const _List_iterator<>&, const _List_const_iterator<>&)):
191 Remove.
192
193 2018-10-09 Jonathan Wakely <jwakely@redhat.com>
194
195 * include/bits/stringfwd.h (string, wstring, u16string, u32string):
196 Define typedefs outside of __cxx11 inline namespace.
197 * python/libstdcxx/v6/printers.py (register_type_printers): Also
198 register printers for typedefs in new location.
199
200 2018-10-08 Jonathan Wakely <jwakely@redhat.com>
201
202 PR libstdc++/87538
203 * testsuite/experimental/functional/87538.cc: New test.
204
205 PR libstdc++/87538
206 * include/std/functional (_Not_fn::operator()): Check value of
207 __is_nothrow_invocable as well.
208 * testsuite/20_util/function_objects/not_fn/87538.cc: New test.
209
210 2018-10-08 François Dumont <fdumont@gcc.gnu.org>
211
212 * include/debug/list (list<>::cbegin()): Use C++11 direct
213 initialization.
214 (list<>::cend()): Likewise.
215 (list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
216 (list<>::insert(const_iterator, initializer_list<>)): Likewise.
217 (list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
218 (list<>::erase(const_iterator, const_iterator)): Ensure consistent
219 iterator comparisons.
220 (list<>::splice(const_iterator, list&&, const_iterator,
221 const_iterator)): Likewise.
222
223 2018-10-05 François Dumont <fdumont@gcc.gnu.org>
224
225 * include/bits/stl_tree.h
226 (_Rb_tree_iterator<>::operator==): Make inline friend.
227 (_Rb_tree_iterator<>::operator!=): Likewise.
228 (_Rb_tree_const_iterator<>::operator==): Likewise.
229 (_Rb_tree_const_iterator<>::operator!=): Likewise.
230 (operator==(const _Rb_tree_iterator<>&,
231 const _Rb_tree_const_iterator&)): Remove.
232 (operator!=(const _Rb_tree_iterator<>&,
233 const _Rb_tree_const_iterator&)): Remove.
234 (operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
235 (operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
236 (operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
237 deprecate.
238 (operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
239 (operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
240 (operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
241 * include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
242 Compare __victim with _Base::cend().
243 * include/debug/multimap.h
244 (multimap<>::erase(const_iterator, const_iterator)): Likewise.
245 * include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
246 Compare __victim with _Base::cend().
247 * include/debug/multiset.h
248 (multiset<>::erase(const_iterator, const_iterator)): Likewise.
249
250 2018-10-03 Jonathan Wakely <jwakely@redhat.com>
251
252 PR libstdc++/59439
253 * src/c++98/locale.cc (locale::locale(const locale&)): Bypass
254 reference count updates for the classic locale.
255 (locale::~locale()): Likewise.
256 (locale::operator=(const locale&)): Likewise.
257 * src/c++98/locale_init.cc (locale::locale()): Likewise.
258 (locale::global(const locale&)): Likewise.
259
260 2018-10-03 François Dumont <fdumont@gcc.gnu.org>
261
262 * include/debug/map.h
263 (map<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
264 (map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
265 (map<>::insert(value_type&&)): Likewise.
266 (map<>::insert<>(_Pair&&)): Likewise.
267 (map<>::insert<>(const_iterator, _Pair&&)): Likewise.
268 (map<>::try_emplace): Likewise.
269 (map<>::insert_or_assign): Likewise.
270 (map<>::insert(node_type&&)): Likewise.
271 (map<>::insert(const_iterator, node_type&&)): Likewise.
272 (map<>::erase(const_iterator)): Likewise.
273 (map<>::erase(const_iterator, const_iterator)): Likewise.
274 * include/debug/multimap.h
275 (multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
276 (multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
277 (multimap<>::insert<>(_Pair&&)): Likewise.
278 (multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
279 (multimap<>::insert(node_type&&)): Likewise.
280 (multimap<>::insert(const_iterator, node_type&&)): Likewise.
281 (multimap<>::erase(const_iterator)): Likewise.
282 (multimap<>::erase(const_iterator, const_iterator)): Likewise.
283 * include/debug/set.h
284 (set<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
285 (set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
286 (set<>::insert(value_type&&)): Likewise.
287 (set<>::insert<>(const_iterator, value_type&&)): Likewise.
288 (set<>::insert(const_iterator, node_type&&)): Likewise.
289 (set<>::erase(const_iterator)): Likewise.
290 (set<>::erase(const_iterator, const_iterator)): Likewise.
291 * include/debug/multiset.h
292 (multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization.
293 (multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
294 (multiset<>::insert<>(value_type&&)): Likewise.
295 (multiset<>::insert<>(const_iterator, value_type&&)): Likewise.
296 (multiset<>::insert(node_type&&)): Likewise.
297 (multiset<>::insert(const_iterator, node_type&&)): Likewise.
298 (multiset<>::erase(const_iterator)): Likewise.
299 (multiset<>::erase(const_iterator, const_iterator)): Likewise.
300
301 2018-10-02 Marc Glisse <marc.glisse@inria.fr>
302
303 PR libstdc++/87258
304 * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
305 Rebuild _M_start with an explicit 0 offset.
306
307 2018-10-02 Jonathan Wakely <jwakely@redhat.com>
308
309 * include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
310 directly instead of get, as caller ensures correct index is used.
311 (holds_alternative, get, get_if): Remove redundant inline specifiers.
312 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise.
313
314 2018-10-02 Joseph Myers <joseph@codesourcery.com>
315
316 * testsuite/lib/libstdc++.exp (libstdc++_init): Use
317 -fno-show-column in default cxxflags.
318
319 2018-10-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
320
321 * config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
322
323 2018-10-01 Gerald Pfeifer <gerald@pfeifer.com>
324
325 * doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
326 Custom Memory Allocation".
327
328 2018-10-01 Jonathan Wakely <jwakely@redhat.com>
329
330 * doc/html/*: Regenerate.
331
332 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
333
334 * doc/xml/manual/messages.xml: Switch link to www.oracle.com
335 to https.
336
337 2018-09-30 Gerald Pfeifer <gerald@pfeifer.com>
338
339 * doc/xml/manual/policy_data_structures_biblio.xml: Update
340 link to Microsoft Component Model Object Technologies.
341
342 2018-09-29 Gerald Pfeifer <gerald@pfeifer.com>
343
344 * doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web
345 site now uses https. Also omit the unnecessary trailing slash.
346 * doc/xml/gnu/gpl-3.0.xml: Ditto.
347
348 2018-09-28 François Dumont <fdumont@gcc.gnu.org>
349
350 * include/debug/functions.h
351 (__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
352 const _InputIter&, __true_type)): Use empty() rather than begin() ==
353 end().
354
355 2018-09-25 Mike Crowe <mac@mcrowe.com>
356
357 * include/std/condition_variable (condition_variable::wait_for): Use
358 steady clock in overload that uses a predicate.
359
360 2018-09-25 Jonathan Wakely <jwakely@redhat.com>
361
362 PR libstdc++/87431
363 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
364 Avoid runtime test when all alternatives are scalars and so cannot
365 throw during initialization.
366
367 2018-09-25 Gerald Pfeifer <gerald@pfeifer.com>
368
369 * doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
370 to https.
371
372 2018-09-24 Gerald Pfeifer <gerald@pfeifer.com>
373
374 * doc/xml/manual/policy_data_structures_biblio.xml: Update link
375 to "Priority Queues and the STL".
376
377 2018-09-23 Gerald Pfeifer <gerald@pfeifer.com>
378
379 * doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
380 https.
381
382 2018-09-21 François Dumont <fdumont@gcc.gnu.org>
383
384 PR libstdc++/87135
385 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
386 Use __builtin_floor to compute _M_next_resize.
387 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
388 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
389 Adapt.
390
391 2018-09-21 Jonathan Wakely <jwakely@redhat.com>
392
393 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
394 * testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
395 long double unconditionally, but use lower tolerance when
396 sizeof(long double) == sizeof(double).
397
398 2018-09-20 Christophe Lyon <christophe.lyon@linaro.org>
399
400 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
401 on arm*.
402
403 2018-09-19 Jonathan Wakely <jwakely@redhat.com>
404
405 * include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
406 Remove __glibcxx_assert statements and use map::find instead of
407 map::operator[].
408
409 2018-09-18 François Dumont <fdumont@gcc.gnu.org>
410
411 PR libstdc++/87135
412 * src/c++11/hashtable_c++0x.cc:
413 (_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
414 requested size, but not necessarily greater.
415 (_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
416 strictly greater than next resize threshold.
417 * testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
418 to validate that there is no rehash as long as number of insertion is
419 lower or equal to the reserved number of elements.
420
421 2018-09-18 Jonathan Wakely <jwakely@redhat.com>
422
423 * include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
424 checking invocable condition.
425 (unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
426 here, where types must be complete. Pass pointer to deleter as an
427 rvalue.
428 * testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.
429
430 2018-09-13 Jonathan Wakely <jwakely@redhat.com>
431
432 * include/std/variant (variant) [__clang__]: Limit workaround to
433 Clang 7 and older.
434
435 2018-09-11 Jonathan Wakely <jwakely@redhat.com>
436
437 PR libstdc++/87278
438 * include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
439 remove_const.
440 * testsuite/20_util/shared_ptr/creation/87278.cc: New test.
441
442 Implement LWG 2905 changes to constrain unique_ptr constructors
443 * include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
444 check deleter type.
445 (unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
446 constructible constraint.
447 (unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
448 deleters of reference type and add move constructible constraint.
449 (unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
450 Disable for deleters of non-reference type. Define as deleted.
451 (unique_ptr<T[], D>): Likewise.
452 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
453 directives with unstable line numbers with dg-prune-output.
454 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
455 * testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
456 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
457 Make deleter types invocable.
458
459 2018-09-05 Jonathan Wakely <jwakely@redhat.com>
460
461 * libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
462
463 2018-09-03 Jonathan Wakely <jwakely@redhat.com>
464
465 PR libstdc++/78179
466 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
467 that runs the long double part of hypot.cc.
468 * testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
469 tests unless TEST_HYPOT_LONG_DOUBLE is defined.
470
471 * include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
472 Return raw pointer not allocator's pointer type.
473 (vector::_Temporary_value::_M_val): Use _M_ptr.
474
475 PR libstdc++/87194
476 * include/bits/stl_map.h
477 (map::map(initializer_list<value_type>, const Compare&, const Alloc&))
478 (map::map(initializer_list<value_type>, const Alloc&))
479 (map::map(InputIterator, InputIterator, const Alloc&))
480 (map::map(InputIterator, InputIterator))
481 (map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
482 (map::insert(InputIterator, InputIterator)):
483 Call _M_insert_range_unique instead of _M_insert_unique.
484 * include/bits/stl_multimap.h
485 (multimap::multimap(initializer_list<value_type>, const C&, const A&))
486 (multimap::multimap(initializer_list<value_type>, const A&))
487 (multimap::multimap(InputIterator, InputIterator, const A&))
488 (multimap::multimap(InputIterator, InputIterator))
489 (multimap::multimap(InputIterator, InputIterator, const C&, const A&))
490 (multimap::insert(InputIterator, InputIterator)): Call
491 _M_insert_range_equal instead of _M_insert_equal.
492 * include/bits/stl_multiset.h
493 (multiset::multiset(InputIterator, InputIterator))
494 (multiset::multiset(InputIterator, InputIterator, const C&, const A&))
495 (multiset::multiset(initializer_list<value_type>, const C&, const A&))
496 (multiset::multiset(initializer_list<value_type>, const A&))
497 (multiset::multiset(InputIterator, InputIterator, const A&))
498 (multiset::insert(InputIterator, InputIterator)): Call
499 _M_insert_range_equal instead of _M_insert_equal.
500 * include/bits/stl_set.h
501 (set::set(InputIterator, InputIterator))
502 (set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
503 (set::set(initializer_list<value_type>, const Compare&, const Alloc&))
504 (set::set(initializer_list<value_type>, const Alloc&))
505 (set::set(InputIterator, InputIterator, const Alloc&))
506 (set::insert(InputIterator, InputIterator)):
507 Call _M_insert_range_unique instead of _M_insert_unique.
508 * include/bits/stl_tree.h
509 [__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
510 template for SFINAE constraints.
511 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
512 constrained overloads that either insert or emplace, depending on
513 iterator's value_type.
514 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
515 [__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
516 (_Rb_tree::_M_insert_range_equal): New functions replacing range
517 versions of _M_insert_unique and _M_insert_equal.
518 (_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
519 (_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
520 * testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
521 * testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
522 * testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
523 * testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
524
525 PR libstdc++/78595
526 * include/bits/stl_map.h (map::insert(_Pair&&))
527 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
528 * include/bits/stl_multimap.h (multimap::insert(_Pair&&))
529 (multimap::insert(const_iterator, _Pair&&)): Likewise.
530 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
531 (unordered_map::insert(const_iterator, _Pair&&))
532 (unordered_multimap::insert(_Pair&&))
533 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
534 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
535 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
536 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
537 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
538 test.
539
540 2018-09-02 François Dumont <fdumont@gcc.gnu.org>
541
542 * include/debug/safe_iterator.h
543 (_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
544 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
545 New.
546 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
547 ::_OtherSelf): New.
548 (_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
549 (_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
550 (_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
551 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
552 ::operator+(difference_type)): Use latters, inline as friend.
553 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
554 ::operator-(difference_type)): Likewise.
555 (operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
556 Likewise.
557 (operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
558 Likewise.
559 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
560 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
561 Likewise.
562 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
563 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
564 Likewise.
565 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
566 (operator+(difference_type, const _Safe_iterator<>&)): Likewise.
567 (operator-(const _Safe_iterator<>&, difference_type)): Likewise.
568 * include/debug/safe_iterator.tcc
569 (_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
570 copy.
571 * include/debug/safe_local_iterator.h
572 (_Safe_local_iterator<_It, _Seq>::_Self): New.
573 (_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
574 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
575 (operator==(const _Safe_local_iterator<>&,
576 const _Safe_local_iterator<>&)): Use latter, inline as friend.
577 (operator!=(const _Safe_local_iterator<>&,
578 const _Safe_local_iterator<>&)): Likewise.
579 * testsuite/util/testsuite_containers.h: Include utility.
580 (struct forward_members_unordered<_Tp, bool>): Remove 2nd template
581 parameter.
582 (forward_members_unordered<>::forward_members_unordered(value_type&)):
583 Add using namespace std::rel_ops.
584 Add iterator_concept_checks on local_iterator and const_local_iterator.
585 Add asserts on comparison between const_local_iterator and
586 local_iterator.
587 (struct forward_members_unordered<_Tp, false>): Remove partial
588 specialization.
589 * testsuite/23_containers/forward_list/types/1.cc: New.
590 * testsuite/23_containers/list/types/1.cc: New.
591
592 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
593
594 * doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
595 references.
596
597 2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
598
599 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
600 Add dg-require-fileio.
601 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
602 Likewise.
603 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
604 Likewise.
605 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
606 Likewise.
607 * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
608 Likewise.
609 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
610 Likewise.
611 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
612 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
613 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
614 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
615 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
616 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
617 Likewise.
618 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
619 Likewise.
620 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
621 Likewise.
622 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
623 Likewise.
624 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
625 Likewise.
626 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
627 Likewise.
628 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
629 Likewise.
630 * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
631 * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
632 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
633 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
634 * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
635 Likewise.
636 * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
637 Likewise.
638 * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
639 * testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
640 * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
641 * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
642 * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
643 * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
644 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
645 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
646 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
647 Likewise.
648 * testsuite/27_io/objects/wchar_t/10.cc: Likewise.
649 * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
650 * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
651 * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
652 * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
653 * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
654 * testsuite/experimental/string_view/inserters/wchar_t/2.cc:
655 Likewise.
656 * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
657
658 2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
659
660 * testsuite/experimental/propagate_const/observers/1.cc: Make
661 dependence on -fdelete-null-pointer-checks explicit.
662
663 2018-08-30 Jonathan Wakely <jwakely@redhat.com>
664
665 * include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
666 targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
667 of the number of bits in the type.
668 * include/std/bit (__ceil2): Avoid undefined shifts.
669 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
670 the most signifiant bit set.
671
672 * config/abi/pre/gnu.ver: Add missing exports for mingw.
673
674 * include/ext/pointer.h (_Pointer_adapter): Define operators for
675 pointer arithmetic using long long offsets.
676 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
677 long long values.
678
679 2018-08-29 Jonathan Wakely <jwakely@redhat.com>
680
681 PR libstdc++/31413
682 * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
683 string for alternative format.
684
685 2018-08-28 Jonathan Wakely <jwakely@redhat.com>
686
687 PR libstdc++/87116
688 * src/filesystem/std-path.cc (path::lexically_normal): When handling
689 a dot-dot filename, preserve an empty final component in the iteration
690 sequence.
691 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
692 root-directory.
693 * testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
694 for more than two adjacent dot-dot filenames.
695 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
696 preferred-separator in expected normalized strings.
697
698 2018-08-25 Iain Sandoe <iain@sandoe.co.uk>
699
700 PR libstdc++/70694
701 * configure.host (OPT_LDFLAGS): Don't append
702 -fvisibility-inlines-hidden for newer Darwin.
703
704 2018-08-24 Marc Glisse <marc.glisse@inria.fr>
705
706 PR libstdc++/86822
707 * libsupc++/new (operator new(size_t, nothrow_t), operator
708 new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t),
709 operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute.
710
711 2018-08-24 Jonathan Wakely <jwakely@redhat.com>
712
713 * include/debug/deque (std::__debug::deque): Declare.
714 * include/debug/forward_list (std::__debug::forward_list): Declare.
715 * include/debug/list (std::__debug::list): Declare.
716 * include/debug/map (std::__debug::map): Declare.
717 * include/debug/set (std::__debug::set): Declare.
718 * include/debug/unordered_map (std::__debug::unordered_map): Declare.
719 * include/debug/unordered_set (std::__debug::unordered_set): Declare.
720 * include/debug/vector (std::__debug::vector): Declare.
721 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
722 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
723 test.
724 * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
725 * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
726 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
727 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
728 * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
729 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
730 test.
731 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
732 New test.
733 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
734 New test.
735 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
736 test.
737 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
738 Adjust dg-error lineno.
739 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
740 test.
741
742 2018-08-23 Jonathan Wakely <jwakely@redhat.com>
743
744 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
745 Only define when RTTI is enabled.
746
747 * include/debug/vector (__niter_base): Define for C++98.
748
749 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
750 Fix C++98 test to not use C++11 features.
751 * testsuite/25_algorithms/fill_n/2.cc: Likewise.
752
753 * scripts/check_compile: Fix comments.
754
755 * include/debug/string (insert(__const_iterator, _InIter, _InIter)):
756 [!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with
757 begin(), for C++98 compatibility.
758
759 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
760 (basic_string::__const_iterator): Change access to protected.
761 [!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define
762 as typedef for iterator.
763 * include/debug/string (__const_iterator): Use typedef from base.
764 (insert(const_iterator, _CharT))
765 (replace(const_iterator, const_iterator, const basic_string&))
766 (replace(const_iterator, const_iterator, const _CharT*, size_type))
767 (replace(const_iterator, const_iterator, const CharT*))
768 (replace(const_iterator, const_iterator, size_type, _CharT))
769 (replace(const_iterator, const_iterator, _InputIter, _InputIter))
770 (replace(const_iterator, const_iterator, initializer_list<_CharT>)):
771 Change const_iterator parameters to __const_iterator.
772 (insert(iterator, size_type, _CharT)): Add C++98 overload.
773 (insert(const_iterator, _InputIterator, _InputIterator)): Change
774 const_iterator parameter to __const_iterator.
775 [!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type
776 of base's member function.
777 (insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]:
778 Likewise.
779 (insert(const_iterator, initializer_list<_CharT>))
780 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
781 * testsuite/21_strings/basic_string/init-list.cc: Remove effective
782 target directive.
783
784 * testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to
785 not use C++14 feature.
786 * testsuite/23_containers/list/68222_neg.cc: Likewise.
787
788 * testsuite/21_strings/basic_string/init-list.cc:
789 Require cxx11-abi.
790 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
791 Likewise.
792 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
793 Likewise.
794
795 * testsuite/23_containers/deque/capacity/max_size.cc: Fix test for
796 C++98 mode.
797 * testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise.
798 * testsuite/23_containers/list/modifiers/assign/1.cc: Likewise.
799 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise.
800 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
801 * testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise.
802
803 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
804
805 PR libstdc++/87061
806 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI]
807 (experimental::pmr::match_results, experimental::pmr::cmatch)
808 (experimental::pmr::smatch, experimental::pmr::wcmatch)
809 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI,
810 because COW strings don't support C++11 allocator model.
811 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI]
812 (experimental::pmr::basic_string, experimental::pmr::string)
813 (experimental::pmr::u16string, experimental::pmr::u32string)
814 (experimental::pmr::wstring): Likewise.
815 * include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results)
816 (pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise.
817 * include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string)
818 (pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise.
819 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require
820 cxx11-abi.
821 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
822
823 PR libstdc++/78448
824 * include/bits/deque.tcc (deque::_M_range_initialize): Use
825 _S_check_init_len to check size.
826 (deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length
827 error if size would exceed max_size().
828 * include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef.
829 (_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use
830 size_t instead of size_type.
831 (deq(size_type, const allocator_type&)
832 (deq(size_type, const value_type&, const allocator_type&)
833 (deque::_M_initialize_dispatch): Use _S_check_init_len to check size.
834 (deque::max_size): Call _S_max_size.
835 (deque::_S_check_init_len, deque::_S_max_size): New functions.
836 * include/bits/stl_vector.h (vector(size_type, const allocator_type&))
837 (vector(size_type, const value_type&, const allocator_type&))
838 (vector::_M_initialize_dispatch, vector::_M_range_initialize): Use
839 _S_check_init_len to check size.
840 (vector::max_size): Call _S_max_size.
841 (vector::_M_check_len): Prevent max from being expanded as a
842 function-like macro.
843 (vector::_S_check_init_len, vector::_S_max_size): New functions.
844 * include/bits/vector.tcc (vector::_M_assign_aux): Use
845 _S_check_init_len to check size.
846 * testsuite/23_containers/deque/capacity/max_size.cc: New test.
847 * testsuite/23_containers/vector/capacity/max_size.cc: New test.
848
849 2018-08-22 François Dumont <fdumont@gcc.gnu.org>
850
851 PR libstdc++/68222
852 * include/debug/safe_iterator.h
853 (_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter.
854 (_Safe_iterator<>::_Const_iterator): Remove.
855 (_Safe_iterator<>::_IsConstant): New.
856 (_Safe_iterator<>::_OtherIterator): New.
857 (_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>(
858 const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in
859 __gnu_cxx::__enable_if condition.
860 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New.
861 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New.
862 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New.
863 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New.
864 (_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move...
865 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
866 ::operator--()): ...here.
867 (_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move...
868 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
869 ::operator--(int)): ...here.
870 (_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move...
871 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>
872 ::_M_decrementable()): ...here.
873 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New.
874 (_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)):
875 Move...
876 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
877 ::operator[](const difference_type&)): ...here.
878 (_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)):
879 Move...
880 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
881 ::operator+=(const difference_type&)): ...here.
882 (_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)):
883 Move...
884 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
885 ::operator+(const difference_type&)): ...here.
886 (_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)):
887 Move...
888 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
889 ::operator-=(const difference_type&)): ...here.
890 (_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)):
891 Move...
892 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>
893 ::operator-(const difference_type&)): ...here.
894 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)):
895 Constraint to random access iterators.
896 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
897 Likewise.
898 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
899 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
900 Likewise.
901 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
902 (operator+(const difference_type&, const _Safe_iterator<>&)): Likewise.
903 (__check_dereferenceable(const _Safe_iterator<>&)): Remove.
904 (__get_distance): Remove.
905 (__get_distance_from_begin): Remove.
906 (__get_distance_to_end): Remove.
907 (struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial
908 specialization.
909 (__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove.
910 (__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove.
911 (__base(const _Safe_iterator<>&)): Constraint to random access iterator.
912 * include/debug/safe_iterator.tcc
913 (_Safe_iterator<>::_M_get_distance_from_begin()): New.
914 (_Safe_iterator<>::_M_get_distance_to_end()): New.
915 (_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New.
916 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
917 ::_M_valid_range): New.
918 * include/debug/safe_local_iterator.h
919 (_Safe_local_iterator<>::_Const_local_iterator): Remove.
920 (_Safe_local_iterator<>::_IsConstant): New.
921 (_Safe_local_iterator<>::_OtherIterator): New.
922 (_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>(
923 const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value
924 in __gnu_cxx::__enable_if condition. If singular compare base iterator
925 with _MutIte rather than _It.
926 (_Safe_local_iterator<>::_S_constant): Make constexpr.
927 (_Safe_local_iterator<>::_M_get_distance_to): New.
928 (__check_dereferenceable(const _Safe_local_iterator<>&)): Remove.
929 (__get_distance(const _Safe_local_iterator<>&,
930 const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove.
931 (__valid_range(const _Safe_local_iterator<>&,
932 const _Safe_local_iterator<>&)): New.
933 * include/debug/safe_local_iterator.tcc
934 (_Safe_local_iterator<>::_M_get_distance_to): New.
935 * include/debug/deque (std::__debug::deque<>): Add
936 ::__gnu_debug::_Safe_iterator<> friend declaration.
937 * include/debug/forward_list (std::__debug::forward_list<>): Likewise.
938 * include/debug/list (std::__debug::list<>): Likewise.
939 * include/debug/map.h (std::__debug::map<>): Likewise.
940 * include/debug/multimap.h (std::__debug::multimap<>): Likewise.
941 * include/debug/set.h (std::__debug::set<>): Likewise.
942 * include/debug/multiset.h (std::__debug::multiset<>): Likewise.
943 * include/debug/string (std::__debug::basic_string<>): Likewise.
944 * include/debug/unordered_map (std::__debug::unordered_map<>): Likewise
945 and add ::__gnu_debug::_Safe_local_iterator<> friend declaration.
946 (std::__debug::unordered_multimap<>): Likewise.
947 * include/debug/unordered_set (std::__debug::unordered_set<>): Likewise.
948 (std::__debug::unordered_multiset<>): Likewise.
949 * include/debug/formatter.h: Adapt.
950 * include/debug/helper_functions.h
951 (__gnu_debug::_Safe_local_iterator<>): Add declaration.
952 (__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag):
953 Pass parameter by copy.
954 (__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise.
955 (__get_distance<_Ite>(_Ite, _Ite): Likewise.
956 (__valid_range_aux<_Integral>): Pass _Integral by copy.
957 (__valid_range<_InputIterator>): Pass _InputIterator by copy.
958 (__valid_range<>(const _Safe_iterator<>&,
959 const _Safe_iterator<>&, typename _Distance_traits<>::__type&)):
960 Declare.
961 (__valid_range(const _Safe_local_iterator<>&,
962 const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)):
963 Declare.
964 (__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)):
965 Declare.
966 (__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)):
967 Declare.
968 (__can_advance): Adapt.
969 (struct __is_safe_random_iterator<>): Remove.
970 (struct _SIter_base<>): Remove.
971 * include/debug/functions.h: Include <bits/stl_iterator.h>.
972 (__check_dereferenceable): Remove.
973 (__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt.
974 (__foreign_iterator_aux2, __foreign_iterator_aux): Adapt.
975 (__foreign_iterator): Adapt.
976 * include/debug/stl_iterator.h
977 (__is_safe_random_iterator<std::reverse_iterator<>>): Remove.
978 (__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)):
979 Constraint for random access iterators.
980 (__niter_base): Adapt.
981 * testsuite/util/testsuite_containers.h:
982 Include <bits/boost_concept_check.h>.
983 (iterator_concept_checks<_It, _Mutable, _Category>): New.
984 (citerator<_Cont>::forward_members::forward_members()): Instantiate
985 latter for container iterator and const_iterator.
986 * testsuite/23_containers/list/68222_neg.cc: New.
987 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt
988 line number.
989 * testsuite/23_containers/unordered_set/debug/debug_functions.cc:
990 (test01): Remove.
991 * testsuite/23_containers/vector/debug/debug_functions.cc (test01):
992 Remove.
993
994 2018-08-22 Jonathan Wakely <jwakely@redhat.com>
995
996 PR libstdc++/77854
997 * doc/xml/manual/status_cxx1998.xml: Document size_type and
998 difference_type for containers.
999 * doc/html/*: Regenerate.
1000
1001 2018-08-21 François Dumont <fdumont@gcc.gnu.org>
1002
1003 P0646R1 Improving the Return Value of Erase-Like Algorithms I
1004 * include/debug/forward_list (forward_list::__remove_return_type):
1005 Define typedef as size_type or void, according to __cplusplus value.
1006 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1007 empty, according to __cplusplus value.
1008 (_GLIBCXX20_ONLY): Define macro.
1009 (forward_list::remove, forward_list::unique): Use typedef and macro
1010 to change return type and add abi-tag for C++2a. Return number of
1011 removed elements for C++2a.
1012 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
1013 typedef to change return type for C++2a. Return number of removed
1014 elements for C++2a.
1015 * include/debug/list (list::__remove_return_type): Define typedef as
1016 size_type or void, according to __cplusplus value.
1017 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1018 empty, according to __cplusplus value.
1019 (_GLIBCXX20_ONLY): Define macro.
1020 (list::remove, list::unique): Use typedef and macro to change return
1021 type and add abi-tag for C++2a. Return number of removed elements for
1022 C++2a.
1023 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef
1024 to change return type for C++2a. Return number of removed elements for
1025 C++2a.
1026
1027 2018-08-21 David Edelsohn <dje.gcc@gmail.com>
1028
1029 * testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
1030
1031 2018-08-21 Jonathan Wakely <jwakely@redhat.com>
1032
1033 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove
1034 redundant dg-do directive.
1035 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
1036 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
1037 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
1038 * testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
1039
1040 2018-08-20 Jonathan Wakely <jwakely@redhat.com>
1041
1042 PR libstdc++/86963
1043 * include/std/tuple (_Tuple_impl::operator=): Define as deleted.
1044 (_Tuple_impl::_M_assign): New functions to perform assignment instead
1045 of assignment operators.
1046 (_Tuple_impl::_M_swap): Remove exception specification.
1047 (_Tuple_impl<_Idx, _Head>): Likewise.
1048 (_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t.
1049 (__tuple_base): Remove.
1050 (tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base.
1051 (tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign.
1052 (tuple::swap, tuple<_T1, _T2>::swap): Define exception specification
1053 using __is_nothrow_swappable.
1054 (tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t.
1055
1056 * include/std/optional (_Optional_payload): Use variable templates
1057 for conditions in default template arguments and exception
1058 specifications.
1059 (optional): Likewise. Adjust indentation.
1060 (optional::__not_self, optional::__not_tag, optional::_Requires): New
1061 SFINAE helpers.
1062 (optional::optional): Use new helpers in constructor constraints.
1063 * include/std/type_traits (__or_v, __and_v): New variable templates.
1064 * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
1065 dg-prune-output. Remove unused header.
1066
1067 2018-08-18 François Dumont <fdumont@gcc.gnu.org>
1068
1069 * testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
1070 _GLIBCXX_DEBUG.
1071
1072 2018-08-17 Jonathan Wakely <jwakely@redhat.com>
1073
1074 PR libstdc++/86963
1075 * include/std/tuple (__tuple_base): New class template with deleted
1076 copy assignment operator.
1077 (tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
1078 implicit copy/move assignment operator will be deleted/suppressed.
1079 (tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
1080 functions for SFINAE constraints on assignment operators.
1081 (tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
1082 New helper functions for exception specifications.
1083 (tuple::operator=(const tuple&), tuple::operator=(tuple&&))
1084 (tuple<_T1, _T2>::operator=(const tuple&))
1085 (tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
1086 __nonesuch_no_braces when the operator should be defined implicitly.
1087 Use __nothrow_assignable for exception specifications.
1088 (tuple::operator=(const tuple<_UElements...>&))
1089 (tuple::operator=(tuple<_UElements...>&&))
1090 (tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
1091 (tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
1092 (tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
1093 (tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
1094 __assignable and use __nothrow_assignable for exception
1095 specifications.
1096 * python/libstdcxx/v6/printers.py (is_specialization_of): Accept
1097 gdb.Type as first argument, instead of a string.
1098 (StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
1099 tuple for expected structure.
1100 (StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
1101 * testsuite/20_util/tuple/dr2729.cc: New test.
1102 * testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
1103 to dg-prune-output.
1104
1105 2018-08-16 Jonathan Wakely <jwakely@redhat.com>
1106
1107 * include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
1108 about signed/unsigned comparison.
1109
1110 * include/std/ostream (basic_ostream::sentry::~sentry): Suppress
1111 deprecation warnings for using uncaught_exception().
1112
1113 PR libstdc++/86447
1114 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
1115 (logic_error::logic_error(logic_error&&))
1116 (logic_error::operator=(logic_error&&))
1117 (runtime_error::runtime_error(runtime_error&&))
1118 (runtime_error::operator=(runtime_error&&)): Copy strings instead of
1119 moving, to avoid allocating empty reps for moved-from strings.
1120
1121 2018-08-15 Jonathan Wakely <jwakely@redhat.com>
1122
1123 * include/experimental/regex: Remove begin/end macros for namespace.
1124 * include/experimental/string: Likewise.
1125 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
1126 New test.
1127 * testsuite/experimental/polymorphic_allocator/
1128 pmr_typedefs_forward_list.cc: New test.
1129 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
1130 New test.
1131 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
1132 New test.
1133 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
1134 New test.
1135 * testsuite/experimental/polymorphic_allocator/
1136 pmr_typedefs_multimap.cc: New test.
1137 * testsuite/experimental/polymorphic_allocator/
1138 pmr_typedefs_multiset.cc: New test.
1139 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
1140 New test.
1141 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1142 New test.
1143 * testsuite/experimental/polymorphic_allocator/
1144 pmr_typedefs_unordered_map.cc: New test.
1145 * testsuite/experimental/polymorphic_allocator/
1146 pmr_typedefs_unordered_multimap.cc: New test.
1147 * testsuite/experimental/polymorphic_allocator/
1148 pmr_typedefs_unordered_multiset.cc: New test.
1149 * testsuite/experimental/polymorphic_allocator/
1150 pmr_typedefs_unordered_set.cc: New test.
1151 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
1152 New test.
1153
1154 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
1155 calls to __uses_allocator_construct_impl and __use_alloc.
1156 * include/experimental/memory_resource
1157 (polymorphic_allocator::_M_construct): Remove.
1158 (polymorphic_allocator::construct): Call __uses_allocator_construct.
1159 Qualify calls to __use_alloc.
1160 * include/std/memory_resource (polymorphic_allocator::construct): Fix
1161 type in SFINAE constraint. Use constexpr if instead of tag dispatching
1162 to _S_construct overloads.
1163 (polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
1164 arguments to _S_construct_p.
1165 (polymorphic_allocator::_S_construct): Remove.
1166 (polymorphic_allocator::_S_construct_p): Return allocators by value
1167 not by reference.
1168 * include/std/scoped_allocator (scoped_allocator_adaptor::construct):
1169 Qualify calls to __use_alloc.
1170 * testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
1171 copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
1172 * testsuite/experimental/polymorphic_allocator/1.cc: New test.
1173 * testsuite/experimental/polymorphic_allocator/construct_pair.cc:
1174 New test.
1175
1176 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
1177 (atomic_mem_res): Add unsynchronized definition for single-threaded.
1178
1179 2018-08-14 Jonathan Wakely <jwakely@redhat.com>
1180
1181 PR libstdc++/86954
1182 * include/bits/stl_tempbuf.h (return_temporary_buffer): Use
1183 non-placement delete.
1184
1185 * include/std/chrono (__check_overflow): Simplify definition.
1186 (_Checked_integral_constant): Remove.
1187
1188 PR libstdc++/86846
1189 * src/c++17/default_resource.h: New file, defining default_res.
1190 * src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
1191 (atomic_mem_res): Define alternative for atomic<memory_resource*>
1192 using a mutex instead of atomics.
1193
1194 PR libstdc++/85343
1195 * config/abi/pre/gnu.ver: Export new symbol.
1196 * doc/xml/manual/abi.xml: Document new versions.
1197 * include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
1198 (basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
1199 * include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
1200 Declare new overload.
1201 * src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
1202 and static member function.
1203 (__throw_ios_failure(const char*, int)): Define.
1204 * src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
1205 (__throw_ios_failure(const char*, int)): Define.
1206
1207 2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us>
1208
1209 * include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
1210 (_Rope_const_iterator::operator=(const _Rope_const_iterator&))
1211 (_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
1212 copied/assigned rope iterators don't retain pointers to the iterator
1213 they were copied/assigned from.
1214 * testsuite/ext/rope/7.cc: New.
1215
1216 2018-08-13 Jonathan Wakely <jwakely@redhat.com>
1217
1218 PR libstdc++/45093
1219 * include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
1220 Combine definitions to avoid --detect-odr-violations warning.
1221
1222 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
1223 __is_pow2 to check for valid alignment. Avoid branching when rounding
1224 size to multiple of alignment.
1225
1226 * include/Makefile.am: Install <bit> and <version> for freestanding.
1227 * include/Makefile.in: Regenerate.
1228 * testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
1229
1230 Revert
1231 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
1232
1233 PR target/85904
1234 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1235 Newlib.
1236 * configure: Regenerate.
1237
1238 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
1239
1240 PR libstdc++/68210
1241 * doc/xml/manual/intro.xml: Document LWG 206 change.
1242 * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1243 * libsupc++/del_opa.cc: Likewise.
1244 * libsupc++/del_opant.cc: Likewise.
1245 * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
1246 of free(ptr).
1247 * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1248 * libsupc++/del_opsa.cc: Likewise.
1249 * libsupc++/del_opva.cc: Likewise.
1250 * libsupc++/del_opvant.cc: Likewise.
1251 * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
1252 instead of operator delete(ptr).
1253 * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
1254 * libsupc++/del_opvsa.cc: Likewise.
1255 * libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
1256 * libsupc++/new_opa.cc: Use nullptr instead of literal 0.
1257 * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
1258 with noexcept.
1259 * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
1260 malloc(sz).
1261 * libsupc++/new_opvant.cc: Use nullptr and noexcept.
1262 * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
1263 operator new(sz, nothrow).
1264 * testsuite/18_support/new_nothrow.cc: New test.
1265
1266 2018-08-10 Martin Liska <mliska@suse.cz>
1267
1268 * libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
1269 predictor can handle that.
1270 * libsupc++/new_opa.cc: Likewise.
1271 * libsupc++/new_opnt.cc (new): Likewise.
1272
1273 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
1274
1275 PR target/85904
1276 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
1277 Newlib.
1278 * configure: Regenerate.
1279
1280 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
1281
1282 * include/std/deque (std::pmr::deque): Declare alias.
1283 * include/std/forward_list (std::pmr::forward_list): Likewise.
1284 * include/std/list (std::pmr::list): Likewise.
1285 * include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
1286 * include/std/regex (std::pmr::match_results, std::pmr::cmatch)
1287 (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
1288 * include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
1289 * include/std/string (std::pmr::basic_string, std::pmr::string)
1290 (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
1291 Likewise.
1292 * include/std/unordered_map (std::pmr::unordered_map)
1293 (std::pmr::unordered_multimap): Likewise.
1294 * include/std/unordered_set (std::pmr::unordered_set)
1295 (std::pmr::unordered_multiset): Likewise.
1296 * include/std/vector (std::pmr::vector): Likewise.
1297 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
1298 * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
1299 * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
1300 * testsuite/23_containers/list/pmr_typedefs.cc: New test.
1301 * testsuite/23_containers/map/pmr_typedefs.cc: New test.
1302 * testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
1303 * testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
1304 * testsuite/23_containers/set/pmr_typedefs.cc: New test.
1305 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
1306 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
1307 test.
1308 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
1309 test.
1310 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
1311 * testsuite/23_containers/vector/pmr_typedefs.cc: New test.
1312 * testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
1313
1314 2018-08-08 François Dumont <fdumont@gcc.gnu.org>
1315
1316 * include/bits/stl_algo.h
1317 (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
1318 (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
1319 (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
1320 duplication...
1321 (rotate(_Ite, _Ite, _Ite)): ...here.
1322 (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
1323 Simplify rotate call.
1324 (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
1325 Likewise.
1326 (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
1327 Likewise.
1328
1329 2018-08-08 Jonathan Wakely <jwakely@redhat.com>
1330
1331 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
1332 avoid clashing with an ::aligned_alloc function that was not detected
1333 by configure.
1334
1335 * doc/xml/manual/using.xml: Fix markup for empty table entry.
1336 * doc/html/*: Regenerate.
1337
1338 * doc/xml/manual/using.xml: Add missing header to table and fix typo.
1339 * doc/html/*: Regenerate.
1340
1341 PR libstdc++/86597
1342 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
1343 Clear error_code when cached type is used.
1344 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
1345
1346 2018-08-07 Jonathan Wakely <jwakely@redhat.com>
1347
1348 PR libstdc++/86874
1349 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
1350 here instead of in _Move_assign_base.
1351 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
1352 (_Copy_assign_base::operator=): Use _M_destructive_move when changing
1353 the contained value to another alternative.
1354 (_Move_assign_base::operator=): Likewise.
1355 (_Move_assign_base::_M_destructive_move): Remove.
1356 * testsuite/20_util/variant/86874.cc: New test.
1357
1358 PR libstdc++/86861
1359 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
1360 Replace macro with inline function.
1361 [__sun]: Increase alignment to meet memalign precondition.
1362 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
1363 (aligned_alloc): Move check for valid alignment to operator new.
1364 Remove redundant check for non-zero size, it's enforced by the caller.
1365 (operator new): Move check for valid alignment here. Use
1366 __builtin_expect on check for zero size.
1367
1368 * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
1369 * include/std/memory_resource (monotonic_buffer_resource::release):
1370 Call _M_release_buffers to free buffers.
1371 (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
1372 allocate a new buffer from upstream.
1373 (monotonic_buffer_resource::_M_new_buffer): Declare.
1374 (monotonic_buffer_resource::_M_release_buffers): Declare.
1375 (monotonic_buffer_resource::_Chunk): Replace definition with
1376 declaration as opaque type.
1377 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
1378 Define.
1379 (monotonic_buffer_resource::_M_new_buffer): Define.
1380 (monotonic_buffer_resource::_M_release_buffers): Define.
1381
1382 2018-08-05 François Dumont <fdumont@gcc.gnu.org>
1383
1384 * include/bits/stl_iterator.h: Fix comment.
1385
1386 2018-08-03 Jonathan Wakely <jwakely@redhat.com>
1387
1388 * src/c++11/system_error.cc
1389 (system_error_category::default_error_condition): Add workaround for
1390 ENOTEMPTY and EEXIST having the same value on AIX.
1391 * testsuite/19_diagnostics/error_category/system_category.cc: Add
1392 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
1393
1394 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
1395
1396 * configure: Regenerate.
1397 * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
1398 * src/c++11/futex.cc: Use __glibcxx_assert instead of
1399 _GLIBCXX_DEBUG_ASSERT.
1400
1401 2018-08-01 Mike Crowe <mac@mcrowe.com>
1402
1403 * include/std/condition_variable (wait_for): Use steady_clock.
1404
1405 2018-08-01 Mike Crowe <mac@mcrowe.com>
1406
1407 * include/std/condition_variable (wait_until): Only report timeout
1408 if we really have timed out when measured against the
1409 caller-supplied clock.
1410 * testsuite/30_threads/condition_variable/members/2.cc: Add test
1411 case to confirm above behaviour.
1412
1413 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
1414
1415 PR libstdc++/60555
1416 * src/c++11/system_error.cc
1417 (system_error_category::default_error_condition): New override to
1418 check for POSIX errno values.
1419 * testsuite/19_diagnostics/error_category/generic_category.cc: New
1420 * testsuite/19_diagnostics/error_category/system_category.cc: New
1421 test.
1422
1423 2018-07-31 Jonathan Wakely <jwakely@redhat.com>
1424
1425 PR libstdc++/86751
1426 * include/bits/stl_pair.h (__pair_base): New class with deleted copy
1427 assignment operator.
1428 (pair): Derive from __pair_base.
1429 (pair::operator=): Remove deleted overload.
1430 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
1431 so that new base class isn't shown in GDB.
1432 * testsuite/20_util/pair/86751.cc: New test.
1433 * testsuite/20_util/pair/ref_assign.cc: New test.
1434
1435 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
1436 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
1437 (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
1438 instead of __has_builtin.
1439 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
1440 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
1441 * include/std/version [!_GLIBCXX_HAS_GTHREADS]
1442 (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
1443 (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
1444 [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
1445 (__cpp_lib_has_unique_object_representations): Don't define when
1446 builtin not available.
1447 [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
1448 Likewise.
1449 [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
1450 * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
1451 from here.
1452
1453 * doc/xml/manual/test.xml: Improve documentation on writing tests for
1454 newer standards.
1455 * doc/xml/manual/using.xml: Document all headers for C++11 and later.
1456 * doc/html/*: Regenerate.
1457
1458 * include/ext/pointer.h [__cplusplus >= 201103L]
1459 (_Pointer_adapter::operator bool): Add explicit conversion operator
1460 to replace safe bool idiom.
1461
1462 2018-07-30 Jonathan Wakely <jwakely@redhat.com>
1463
1464 PR libstdc++/86734
1465 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
1466 _S_to_pointer (LWG 1052, LWG 2118).
1467 (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
1468 * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
1469 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
1470
1471 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
1472 workaround for aligned_alloc bug on AIX.
1473 * testsuite/18_support/new_aligned.cc: New test.
1474
1475 2018-07-26 Marek Polacek <polacek@redhat.com>
1476
1477 * testsuite/30_threads/condition_variable_any/cond.cc: New.
1478
1479 2018-07-26 Marek Polacek <polacek@redhat.com>
1480
1481 * src/c++98/locale_init.cc: Fix #ifdef condition.
1482
1483 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
1484
1485 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
1486 dg-require-cstdint directive.
1487 * testsuite/20_util/allocator/overaligned.cc: Likewise.
1488 * testsuite/20_util/any/cons/aligned.cc: Likewise.
1489 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
1490 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
1491 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1492 Likewise.
1493 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1494 * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
1495 * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
1496 * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
1497 * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
1498 random_device effective-target.
1499 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
1500 * testsuite/25_algorithms/sample/1.cc: Require cstdint.
1501 * testsuite/25_algorithms/sample/2.cc: Likewise.
1502 * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
1503 and random_device.
1504 * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
1505 cstdint.
1506 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
1507 Likewise.
1508 * testsuite/26_numerics/random/discard_block_engine/requirements/
1509 constexpr_data.cc: Likewise.
1510 * testsuite/26_numerics/random/discard_block_engine/requirements/
1511 constexpr_functions.cc: Likewise.
1512 * testsuite/26_numerics/random/independent_bits_engine/requirements/
1513 constexpr_functions.cc: Likewise.
1514 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
1515 constexpr_data.cc: Likewise.
1516 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
1517 constexpr_functions.cc: Likewise.
1518 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
1519 constexpr_data.cc: Likewise.
1520 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
1521 constexpr_functions.cc: Likewise.
1522 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
1523 * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
1524 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
1525 constexpr_data.cc: Add dg-require-cstdint directive.
1526 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
1527 constexpr_functions.cc: Likewise.
1528 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
1529 constexpr_data.cc: Likewise.
1530 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
1531 constexpr_functions.cc: Likewise.
1532 * testsuite/26_numerics/random/uniform_real_distribution/operators/
1533 64351.cc: Likewise.
1534 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
1535 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
1536 * testsuite/experimental/algorithm/sample.cc: Likewise.
1537 * testsuite/experimental/algorithm/search.cc: Likewise.
1538 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1539 * testsuite/experimental/any/cons/aligned.cc: Likewise.
1540 * testsuite/experimental/memory_resource/new_delete_resource.cc:
1541 Likewise.
1542 * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
1543 * testsuite/experimental/random/randint.cc: Likewise.
1544 * testsuite/experimental/source_location/1.cc: Likewise.
1545 * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
1546 * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
1547 * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
1548 * testsuite/ext/new_allocator/overaligned.cc: Likewise.
1549 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
1550 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1551 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1552 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1553 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1554 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1555 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1556 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1557 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1558 * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
1559 * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
1560 * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
1561 * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
1562 * testsuite/ext/throw_allocator/check_new.cc: Likewise.
1563 * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
1564 * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
1565 * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
1566 * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
1567 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
1568
1569 * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
1570 * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
1571 * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
1572 * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
1573 Likewise.
1574 * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
1575 * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
1576 * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
1577 Likewise.
1578 * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
1579 Likewise.
1580 * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
1581 Likewise.
1582 * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
1583 * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
1584 * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
1585 * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
1586 * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
1587 * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
1588 Likewise.
1589 * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
1590 Likewise.
1591 * testsuite/30_threads/recursive_timed_mutex/dest/
1592 destructor_locked.cc: Likewise.
1593 * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
1594 * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
1595 * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
1596 Likewise.
1597 * testsuite/30_threads/recursive_timed_mutex/native_handle/
1598 typesizes.cc: Likewise.
1599 * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
1600 Likewise.
1601 * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
1602 Likewise.
1603 * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
1604 Likewise.
1605 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
1606 Likewise.
1607 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
1608 Likewise.
1609 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
1610 Likewise.
1611 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
1612 Likewise.
1613 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
1614 Likewise.
1615 * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
1616 * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
1617 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1618 * testsuite/30_threads/scoped_lock/requirements/
1619 explicit_instantiation.cc: Likewise.
1620 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
1621 * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
1622 * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
1623 * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
1624 * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
1625 * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
1626 * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
1627 * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
1628 * testsuite/30_threads/shared_future/members/get.cc: Likewise.
1629 * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
1630 * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
1631 * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
1632 * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
1633 * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
1634 * testsuite/30_threads/shared_future/requirements/
1635 explicit_instantiation.cc: Likewise.
1636 * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
1637 * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
1638 * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
1639 * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
1640 * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
1641 * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
1642 * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
1643 * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
1644 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
1645 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
1646 * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
1647 * testsuite/30_threads/shared_lock/requirements/
1648 explicit_instantiation.cc: Likewise.
1649 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
1650 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
1651 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
1652 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
1653 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
1654 Likewise.
1655 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
1656 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
1657 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
1658 * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
1659 * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
1660 * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
1661 * testsuite/30_threads/shared_timed_mutex/requirements/
1662 standard_layout.cc: Likewise.
1663 * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
1664 * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
1665 * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
1666 * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
1667 * testsuite/30_threads/this_thread/1.cc: Likewise.
1668 * testsuite/30_threads/this_thread/2.cc: Likewise.
1669 * testsuite/30_threads/this_thread/3.cc: Likewise.
1670 * testsuite/30_threads/this_thread/4.cc: Likewise.
1671 * testsuite/30_threads/this_thread/58038.cc: Likewise.
1672 * testsuite/30_threads/thread/70503.cc: Likewise.
1673 * testsuite/30_threads/thread/84532.cc: Likewise.
1674 * testsuite/30_threads/thread/adl.cc: Likewise.
1675 * testsuite/30_threads/thread/cons/1.cc: Likewise.
1676 * testsuite/30_threads/thread/cons/2.cc: Likewise.
1677 * testsuite/30_threads/thread/cons/3.cc: Likewise.
1678 * testsuite/30_threads/thread/cons/4.cc: Likewise.
1679 * testsuite/30_threads/thread/cons/49668.cc: Likewise.
1680 * testsuite/30_threads/thread/cons/5.cc: Likewise.
1681 * testsuite/30_threads/thread/cons/6.cc: Likewise.
1682 * testsuite/30_threads/thread/cons/7.cc: Likewise.
1683 * testsuite/30_threads/thread/cons/8.cc: Likewise.
1684 * testsuite/30_threads/thread/cons/84535.cc: Likewise.
1685 * testsuite/30_threads/thread/cons/9.cc: Likewise.
1686 * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
1687 * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
1688 * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
1689 * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
1690 * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
1691 * testsuite/30_threads/thread/id/operators.cc: Likewise.
1692 * testsuite/30_threads/thread/members/1.cc: Likewise.
1693 * testsuite/30_threads/thread/members/2.cc: Likewise.
1694 * testsuite/30_threads/thread/members/3.cc: Likewise.
1695 * testsuite/30_threads/thread/members/4.cc: Likewise.
1696 * testsuite/30_threads/thread/members/5.cc: Likewise.
1697 * testsuite/30_threads/thread/members/hardware_concurrency.cc:
1698 Likewise.
1699 * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
1700 * testsuite/30_threads/thread/swap/1.cc: Likewise.
1701 * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
1702 * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
1703 * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
1704 * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
1705 * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
1706 * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
1707 * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
1708 Likewise.
1709 * testsuite/30_threads/timed_mutex/requirements/
1710 standard_layout.cc: Likewise.
1711 * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
1712 * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
1713 * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
1714 * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
1715 * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
1716 * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
1717 * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
1718 * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
1719 * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
1720 * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
1721 * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
1722 * testsuite/30_threads/try_lock/1.cc: Likewise.
1723 * testsuite/30_threads/try_lock/2.cc: Likewise.
1724 * testsuite/30_threads/try_lock/3.cc: Likewise.
1725 * testsuite/30_threads/try_lock/4.cc: Likewise.
1726 * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
1727 * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
1728 * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
1729 * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
1730 * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
1731 * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
1732 * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
1733 * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
1734 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
1735 * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
1736 * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
1737 * testsuite/30_threads/unique_lock/requirements/
1738 explicit_instantiation.cc: Likewise.
1739 * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
1740
1741 * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
1742 directive.
1743 * testsuite/30_threads/async/49668.cc: Likewise.
1744 * testsuite/30_threads/async/54297.cc: Likewise.
1745 * testsuite/30_threads/async/84532.cc: Likewise.
1746 * testsuite/30_threads/async/any.cc: Likewise.
1747 * testsuite/30_threads/async/async.cc: Likewise.
1748 * testsuite/30_threads/async/except.cc: Likewise.
1749 * testsuite/30_threads/async/forced_unwind.cc: Likewise.
1750 * testsuite/30_threads/async/launch.cc: Likewise.
1751 * testsuite/30_threads/async/lwg2021.cc: Likewise.
1752 * testsuite/30_threads/async/sync.cc: Likewise.
1753 * testsuite/30_threads/call_once/39909.cc: Likewise.
1754 * testsuite/30_threads/call_once/49668.cc: Likewise.
1755 * testsuite/30_threads/call_once/60497.cc: Likewise.
1756 * testsuite/30_threads/call_once/call_once1.cc: Likewise.
1757 * testsuite/30_threads/call_once/constexpr.cc: Likewise.
1758 * testsuite/30_threads/call_once/dr2442.cc: Likewise.
1759 * testsuite/30_threads/call_once/once_flag.cc: Likewise.
1760 * testsuite/30_threads/condition_variable/54185.cc: Likewise.
1761 * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
1762 * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
1763 Likewise.
1764 * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
1765 * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
1766 * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
1767 * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
1768 * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
1769 * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
1770 * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
1771 Likewise.
1772 * testsuite/30_threads/condition_variable/requirements/
1773 standard_layout.cc: Likewise.
1774 * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
1775 * Likewise.
1776 * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
1777 * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
1778 * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
1779 * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
1780 Likewise.
1781 * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
1782 Likewise.
1783 * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
1784 * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
1785 * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
1786 * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
1787 * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
1788 * testsuite/30_threads/future/cons/default.cc: Likewise.
1789 * testsuite/30_threads/future/cons/move.cc: Likewise.
1790 * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
1791 * testsuite/30_threads/future/members/45133.cc: Likewise.
1792 * testsuite/30_threads/future/members/get.cc: Likewise.
1793 * testsuite/30_threads/future/members/get2.cc: Likewise.
1794 * testsuite/30_threads/future/members/share.cc: Likewise.
1795 * testsuite/30_threads/future/members/valid.cc: Likewise.
1796 * testsuite/30_threads/future/members/wait.cc: Likewise.
1797 * testsuite/30_threads/future/members/wait_for.cc: Likewise.
1798 * testsuite/30_threads/future/members/wait_until.cc: Likewise.
1799 * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
1800 Likewise.
1801 * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
1802 Likewise.
1803 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1804 * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
1805 * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
1806 * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
1807 * testsuite/30_threads/lock/1.cc: Likewise.
1808 * testsuite/30_threads/lock/2.cc: Likewise.
1809 * testsuite/30_threads/lock/3.cc: Likewise.
1810 * testsuite/30_threads/lock/4.cc: Likewise.
1811 * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
1812 * testsuite/30_threads/lock_guard/requirements/
1813 explicit_instantiation.cc: Likewise.
1814 * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
1815 * testsuite/30_threads/mutex/cons/1.cc: Likewise.
1816 * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
1817 * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
1818 * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
1819 * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
1820 * testsuite/30_threads/mutex/lock/1.cc: Likewise.
1821 * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
1822 * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
1823 * testsuite/30_threads/mutex/requirements/standard_layout.cc::
1824 Likewise.
1825 * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
1826 * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
1827 * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
1828 * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
1829 * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
1830 * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
1831 * testsuite/30_threads/packaged_task/49668.cc: Likewise.
1832 * testsuite/30_threads/packaged_task/60564.cc: Likewise.
1833 * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
1834 * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
1835 * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
1836 * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
1837 * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
1838 * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
1839 * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
1840 * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
1841 * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
1842 * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
1843 * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
1844 * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
1845 Likewise.
1846 * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
1847 * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
1848 * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
1849 * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
1850 * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
1851 * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
1852 * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
1853 * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
1854 * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
1855 * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
1856 * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
1857 * testsuite/30_threads/packaged_task/requirements/
1858 explicit_instantiation.cc: Likewise.
1859 * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
1860 * testsuite/30_threads/promise/60966.cc: Likewise.
1861 * testsuite/30_threads/promise/69106.cc: Likewise.
1862 * testsuite/30_threads/promise/cons/1.cc: Likewise.
1863 * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
1864 * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
1865 * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
1866 * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
1867 * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
1868 * testsuite/30_threads/promise/cons/move.cc: Likewise.
1869 * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
1870 * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
1871 * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
1872 * testsuite/30_threads/promise/members/get_future.cc: Likewise.
1873 * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
1874 * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
1875 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
1876 * testsuite/30_threads/promise/members/set_value.cc: Likewise.
1877 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
1878 * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
1879 * testsuite/30_threads/promise/members/swap.cc: Likewise.
1880 * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
1881 * Likewise.
1882 * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
1883
1884 * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
1885 from namespace std.
1886 * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
1887 * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
1888 * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
1889 * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
1890 * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
1891 * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
1892 * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
1893 * testsuite/20_util/duration/cons/1.cc: Likewise.
1894 * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
1895 * testsuite/20_util/duration/cons/2.cc: Likewise.
1896 * testsuite/20_util/duration/cons/54025.cc: Likewise.
1897 * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
1898 * testsuite/20_util/duration/requirements/explicit_instantiation/
1899 explicit_instantiation.cc: Likewise.
1900 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1901 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1902 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1903 * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
1904 * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
1905 * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
1906 * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
1907 * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
1908 * testsuite/20_util/ratio/operations/45866.cc: Likewise.
1909 * testsuite/20_util/ratio/operations/47913.cc: Likewise.
1910 * testsuite/20_util/ratio/operations/53840.cc: Likewise.
1911 * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
1912 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
1913 * testsuite/20_util/system_clock/1.cc: Likewise.
1914 * testsuite/20_util/time_point/1.cc: Likewise.
1915 * testsuite/20_util/time_point/2.cc: Likewise.
1916 * testsuite/20_util/time_point/3.cc: Likewise.
1917 * testsuite/20_util/time_point/requirements/explicit_instantiation/
1918 explicit_instantiation.cc: Likewise.
1919 * testsuite/21_strings/basic_string/requirements/
1920 explicit_instantiation/char16_t/1.cc: Likewise.
1921 * testsuite/21_strings/basic_string/requirements/
1922 explicit_instantiation/char32_t/1.cc: Likewise.
1923 * testsuite/21_strings/basic_string_view/requirements/
1924 explicit_instantiation/char16_t/1.cc: Likewise.
1925 * testsuite/21_strings/basic_string_view/requirements/
1926 explicit_instantiation/char32_t/1.cc: Likewise.
1927 * testsuite/21_strings/char_traits/requirements/
1928 explicit_instantiation/char16_t/1.cc: Likewise.
1929 * testsuite/21_strings/char_traits/requirements/
1930 explicit_instantiation/char32_t/1.cc: Likewise.
1931 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
1932 * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
1933 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
1934 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
1935 Likewise.
1936 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
1937 Likewise.
1938 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
1939 Likewise.
1940 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
1941 * testsuite/23_containers/vector/bool/72847.cc: Likewise.
1942 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1943 Likewise.
1944 * testsuite/experimental/string_view/requirements/
1945 explicit_instantiation/char16_t/1.cc: Likewise.
1946 * testsuite/experimental/string_view/requirements/
1947 explicit_instantiation/char32_t/1.cc: Likewise.
1948 * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
1949 1.cc: Likewise.
1950 * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
1951 1.cc: Likewise.
1952
1953 * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1954 (random_condition, throw_value_random, throw_allocator_random)
1955 (std::hash<throw_value_random>): Do not define when <tr1/random> is
1956 not usable.
1957 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
1958 define transactional memory support when <stdint.h> is not usable.
1959
1960 * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
1961 implementation that doesn't depend on <stdint.h> types.
1962 * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
1963 std::size_t when std::uintptr_t is not usable.
1964 [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
1965 (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
1966 Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
1967
1968 * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1969 (hash<u16string>, hash<u32string>): Remove dependency on
1970 _GLIBCXX_USE_C99_STDINT_TR1.
1971 * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1972 (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
1973 _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
1974 __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
1975 * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1976 (codecvt<char16_t, char, mbstate_t>)
1977 (codecvt<char32_t, char, mbstate_t>)
1978 (codecvt_byname<char16_t, char, mbstate_t>)
1979 (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
1980 on _GLIBCXX_USE_C99_STDINT_TR1.
1981 * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1982 (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
1983 * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1984 (char_traits<char16_t>, char_traits<char32_t>)
1985 (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
1986 on _GLIBCXX_USE_C99_STDINT_TR1.
1987 * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
1988 (u16string_view, u32string_view, hash<u16string_view>)
1989 (hash<u32string_view>, operator""sv(const char16_t, size_t))
1990 (operator""sv(const char32_t, size_t)): Likewise.
1991 * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1992 (hash<__u16vstring>, hash<__u32vstring>): Likewise.
1993 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
1994 (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
1995 (__u32sso_string, __u32rc_string): Likewise.
1996 * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
1997 (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
1998 * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
1999 (u16string_view, u32string_view, hash<u16string_view>)
2000 (hash<u32string_view>, operator""sv(const char16_t, size_t))
2001 (operator""sv(const char32_t, size_t)): Likewise.
2002 * src/c++11/codecvt.cc: Likewise.
2003 * src/c++98/locale_init.cc: Likewise.
2004 * src/c++98/localename.cc: Likewise.
2005
2006 * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2007 (__atomic_futex_unsigned_base): Remove dependency on
2008 _GLIBCXX_USE_C99_STDINT_TR1 macro.
2009 * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
2010 (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
2011 * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
2012 (uintmax_t): Define using predefined macros.
2013 * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
2014 (time_point, system_clock, high_resolution_clock, steady_clock): Remove
2015 dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
2016 (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
2017 [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
2018 long long when <stdint.h> is not usable.
2019 * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
2020 (condition_variable, condition_variable_any): Remove dependency on
2021 _GLIBCXX_USE_C99_STDINT_TR1.
2022 * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
2023 (packaged_task, async): Likewise.
2024 * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
2025 (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
2026 (once_flag, call_once): Likewise.
2027 * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
2028 * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
2029 (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
2030 * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
2031 (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
2032 (this_thread::sleep_until): Likewise.
2033 * src/c++11/chrono.cc: Remove dependency on
2034 _GLIBCXX_USE_C99_STDINT_TR1 macro.
2035 * src/c++11/condition_variable.cc: Likewise.
2036 * src/c++11/futex.cc: Likewise.
2037 * src/c++11/future.cc: Likewise.
2038 * src/c++11/mutex.cc: Likewise.
2039 * src/c++11/thread.cc: Likewise.
2040 * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
2041 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2042 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2043 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2044 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
2045 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2046
2047 2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2048
2049 PR libstdc++/77691
2050 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2051 xfail execution on 32-bit Solaris/x86.
2052
2053 2018-07-26 Marc Glisse <marc.glisse@inria.fr>
2054
2055 * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
2056 (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
2057 (vector::_M_move_assign): Reorder the swaps.
2058
2059 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
2060
2061 PR libstdc++/86676
2062 * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
2063 same alignment for post-release allocation.
2064
2065 2018-07-25 Jonathan Wakely <jwakely@redhat.com>
2066
2067 PR libstdc++/86676
2068 * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
2069 buffer being misaligned and so returned pointer not being at start.
2070
2071 * include/experimental/memory_resource: Include <cstddef> header.
2072
2073 * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
2074 * src/Makefile.am: Add comment.
2075 * src/c++17/Makefile.in: Regenerate.
2076
2077 * include/Makefile.am: Add new <bits/unique_lock.h> header.
2078 * include/Makefile.in: Regenerate.
2079 * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
2080 (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
2081 (unique_lock): Move definition to ...
2082 * include/bits/unique_lock.h: New header.
2083 [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
2084 [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
2085 (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
2086 (unique_lock::try_lock_for): Define only when <chrono> is usable.
2087 * include/std/condition_variable: Include <bits/unique_lock.h>.
2088 * include/std/mutex: Likewise.
2089
2090 2018-07-24 Jonathan Wakely <jwakely@redhat.com>
2091
2092 * config/abi/pre/gnu.ver: Export new symbols.
2093 * configure: Regenerate.
2094 * include/Makefile.am: Add new <memory_resource> header.
2095 * include/Makefile.in: Regenerate.
2096 * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
2097 * include/std/memory_resource: New header.
2098 (memory_resource, polymorphic_allocator, new_delete_resource)
2099 (null_memory_resource, set_default_resource, get_default_resource)
2100 (pool_options, monotonic_buffer_resource): Define.
2101 * src/Makefile.am: Add c++17 directory.
2102 * src/Makefile.in: Regenerate.
2103 * src/c++11/Makefile.am: Fix comment.
2104 * src/c++17/Makefile.am: Add makefile for new sub-directory.
2105 * src/c++17/Makefile.in: Generate.
2106 * src/c++17/memory_resource.cc: New.
2107 (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
2108 (default_res, new_delete_resource, null_memory_resource)
2109 (set_default_resource, get_default_resource): Define.
2110 * testsuite/20_util/memory_resource/1.cc: New test.
2111 * testsuite/20_util/memory_resource/2.cc: New test.
2112 * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
2113 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
2114 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
2115 * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
2116 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
2117 New test.
2118 * testsuite/20_util/polymorphic_allocator/1.cc: New test.
2119 * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
2120 * testsuite/20_util/polymorphic_allocator/select.cc: New test.
2121 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
2122 Define concrete memory resource for testing.
2123 (__gnu_test::default_resource_mgr): Define RAII helper for changing
2124 default resource.
2125
2126 PR libstdc++/86658
2127 * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
2128 parameter by reference, to avoid copying invalid iterators.
2129 * testsuite/25_algorithms/copy/86658.cc: New test.
2130
2131 * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
2132 local variables for number of digits instead of type aliases.
2133 (__log2p1): Remove redundant branch also checked in __countl_zero.
2134
2135 * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
2136 conditions. Add comments.
2137 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
2138 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2139 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
2140
2141 * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
2142 (__uses_allocator_helper): Check conditions directly instead of
2143 using __is_erased_or_convertible.
2144
2145 * include/experimental/memory_resource: Adjust comments and
2146 whitespace.
2147 (__resource_adaptor_imp): Add second template parameter for type of
2148 memory resource base class.
2149 (memory_resource): Define default constructor, destructor, copy
2150 constructor and copy assignment operator as defaulted.
2151
2152 PR libstdc++/70966
2153 * include/experimental/memory_resource (__get_default_resource): Use
2154 placement new to create an object with dynamic storage duration.
2155
2156 2018-07-23 Jonathan Wakely <jwakely@redhat.com>
2157
2158 PR libstdc++/70940
2159 * include/experimental/memory_resource
2160 (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
2161 (__resource_adaptor_common::__guaranteed_alignment): New helper to
2162 give maximum alignment an allocator guarantees. Specialize for known
2163 allocators using new and malloc.
2164 (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
2165 (__resource_adaptor_imp::do_deallocate): Likewise.
2166 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2167 Check that new and delete are called with expected sizes.
2168
2169 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
2170
2171 PR libstdc++/86595
2172 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
2173 noexcept.
2174
2175 2018-07-20 Fangrui Song <maskray@google.com>
2176
2177 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
2178 _GLIBCXX_VISIBILITY(default).
2179
2180 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
2181
2182 PR libstdc++/86603
2183 * include/std/version: Move __cpp_lib_list_remove_return_type macro.
2184
2185 2018-07-19 Jonathan Wakely <jwakely@redhat.com>
2186
2187 * include/std/type_traits (__is_member_object_pointer_helper): Use
2188 __not_<is_function<_Tp>>::type instead of integral_constant.
2189 (__is_member_function_pointer_helper): Likewise for
2190 is_function<_Tp>::type.
2191 (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
2192 (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
2193 (is_trivially_constructible): Remove redundant use of
2194 is_constructible.
2195 (__is_trivially_copy_assignable_impl): Remove redundant use of
2196 is_copy_assignable.
2197 (__is_trivially_move_assignable_impl): Remove redundant use of
2198 is_move_assignable.
2199 (is_trivially_destructible): Use __bool_constant.
2200 * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
2201 tests for scalar types.
2202
2203 2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
2204
2205 * include/bits/stl_algobase.h (__copy_move_a): Used
2206 __is_trivially_copyable.
2207 (__copy_move_backward_a): Likewise.
2208 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
2209 New test.
2210
2211 2018-07-17 Jonathan Wakely <jwakely@redhat.com>
2212
2213 PR libstdc++/86450
2214 * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
2215 (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
2216 * configure: Regenerate.
2217 * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
2218 * doc/Makefile.in: Regenerate.
2219 * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
2220 * include/Makefile.in: Regenerate.
2221 * libsupc++/Makefile.in: Regenerate.
2222 * po/Makefile.in: Regenerate.
2223 * python/Makefile.in: Regenerate.
2224 * src/Makefile.in: Regenerate.
2225 * src/c++11/Makefile.in: Regenerate.
2226 * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
2227 from -Wabi=2 that don't affect exported symbols.
2228 * src/c++98/Makefile.in: Regenerate.
2229 * src/filesystem/Makefile.in: Regenerate.
2230 * testsuite/Makefile.in: Regenerate.
2231
2232 * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
2233 (_Async_state_common::_M_join): Simplify use of std::call_once and
2234 corresponding explicit instantiation.
2235 (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
2236 (__bind_simple): Remove definitions and explicit instantiation that
2237 are not required by exported symbols.
2238
2239 2018-07-16 Jonathan Wakely <jwakely@redhat.com>
2240
2241 * scripts/create_testsuite_files: Fix typo in comment.
2242
2243 PR libstdc++/86537
2244 * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
2245 non-standard partial specialization.
2246 * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
2247 (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
2248 * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
2249
2250 2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
2251
2252 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
2253 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
2254 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2255
2256 2018-07-06 François Dumont <fdumont@gcc.gnu.org>
2257
2258 * include/debug/functions.h (__gnu_debug::__check_string): Move...
2259 * include/debug/string (__gnu_debug::__check_string): ... here.
2260 (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
2261 (__glibcxx_check_string_n_constructor): New.
2262 (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
2263 Use latter.
2264 (__glibcxx_check_string_constructor): New.
2265 (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
2266 Use latter.
2267 * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
2268 * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
2269
2270 2018-07-06 Jonathan Wakely <jwakely@redhat.com>
2271
2272 PR libstdc++/84928 use std::move in <numeric> algorithms
2273 * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
2274 conditionally move, according to __cplusplus value.
2275 (accumulate, inner_product, partial_sum, adjacent_difference): Use
2276 _GLIBCXX_MOVE_IF_20.
2277 * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
2278 * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
2279 * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
2280 * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
2281
2282 * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
2283
2284 P0935R0 Eradicating unnecessarily explicit default constructors
2285 * config/abi/pre/gnu.ver: Tighten existing patterns and export new
2286 default constructor symbols.
2287 * include/std/sstream (basic_stringbuf, basic_istringstream)
2288 (basic_ostringstream, basic_stringstream): Remove default arguments
2289 from explicit constructors taking ios_base::openmode and add separate
2290 non-explicit default constructors.
2291 * testsuite/27_io/basic_istringstream/cons/default.cc: New.
2292 * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
2293 * testsuite/27_io/basic_stringstream/cons/default.cc: New.
2294 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
2295 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
2296
2297 * include/std/variant (__accepted_index): Use void_t.
2298
2299 2018-07-05 Jonathan Wakely <jwakely@redhat.com>
2300
2301 PR libstdc++/85831
2302 * config/abi/pre/gnu.ver: Export move constructors and move
2303 assignment operators for std::logic_error and std::runtime_error.
2304 * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
2305 _GLIBCXX_USE_NOEXCEPT.
2306 (logic_error, runtime_error): Declare move constructors and move
2307 assignment operators. When not declared already, define copy
2308 constructors and copy assignment operators as explicit-defaulted.
2309 (domain_error, invalid_argument, length_error, out_of_range)
2310 (overflow_error, underflow_error): Define move constructors and move
2311 assignment operators as explicitly-defaulted.
2312 * libsupc++/exception.h (exception): Likewise.
2313 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
2314 move constructors and move assignment operators as defaulted.
2315 * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
2316 assignment operators are defined.
2317
2318 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
2319 COW strings.
2320 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2321 Likewise.
2322 * testsuite/21_strings/basic_string/requirements/
2323 explicit_instantiation/debug.cc: Likewise.
2324
2325 PR libstdc++/58265
2326 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2327 (basic_string::assign(basic_string&&)): Add conditional noexcept
2328 depending on the allocator's is_always_equal property (LWG 2063).
2329 * testsuite/21_strings/basic_string/modifiers/assign/char/
2330 move_assign.cc: Check for non-throwing exception specification.
2331 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
2332 move_assign.cc: Likewise.
2333
2334 PR libstdc++/58265
2335 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2336 [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
2337 Add GLIBCXX_NOEXCEPT.
2338 (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
2339 to depend on the allocator's is_always_equal property (LWG 2063).
2340 (basic_string::swap(basic_string&)): Likewise.
2341 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
2342 (basic_string::swap(basic_string&)): Likewise.
2343 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
2344 Check is_nothrow_move_assignable.
2345 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
2346 Check is_nothrow_move_assignable.
2347 * testsuite/21_strings/basic_string/cons/char/
2348 noexcept_move_construct.cc: Likewise.
2349 * testsuite/21_strings/basic_string/cons/wchar_t/
2350 noexcept_move_construct.cc: Likewise.
2351
2352 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2353
2354 P0646R1 Improving the Return Value of Erase-Like Algorithms I
2355 * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
2356 Define.
2357 (forward_list::__remove_return_type): Define typedef as size_type or
2358 void, according to __cplusplus value.
2359 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2360 empty, according to __cplusplus value.
2361 (forward_list::remove, forward_list::unique): Use typedef and macro
2362 to change return type and add abi-tag for C++2a.
2363 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
2364 typedef to change return type for C++2a.
2365 * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
2366 (forward_list::remove, forward_list::remove_if<Pred>)
2367 (forward_list::unique<BinPred>): Return number of removed elements
2368 for C++2a.
2369 * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
2370 (list::remove, list::unique, list::remove_if<Predicate>)
2371 (list::unique<BinaryPredicate>): Return number of removed elements
2372 for C++2a.
2373 * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
2374 (list::__remove_return_type): Define typedef as size_type or
2375 void, according to __cplusplus value.
2376 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
2377 empty, according to __cplusplus value.
2378 (list::remove, list::unique): Use typedef and macro to change return
2379 type and add abi-tag for C++2a.
2380 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
2381 typedef to change return type for C++2a.
2382 * include/std/version (__cpp_lib_list_remove_return_type): Define.
2383 * testsuite/23_containers/forward_list/operations/
2384 remove_cxx20_return.cc: New.
2385 * testsuite/23_containers/forward_list/operations/
2386 unique_cxx20_return.cc: New.
2387
2388 P0458R2 Checking for Existence of an Element in Associative Containers
2389 * include/bits/stl_map.h (map::contains): Add for C++2a.
2390 * include/bits/stl_multimap.h (multimap::contains): Likewise.
2391 * include/bits/stl_multiset.h (multiset::contains): Likewise.
2392 * include/bits/stl_set.h (set::contains): Likewise.
2393 * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
2394 (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
2395 (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
2396 (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
2397 * include/bits/unordered_map.h (unordered_map::contains)
2398 (unordered_multimap::contains): Add for C++2a.
2399 * include/bits/unordered_set.h (unordered_set::contains)
2400 (unordered_multiset::contains): Likewise.
2401 * testsuite/23_containers/map/operations/contains.cc: New.
2402 * testsuite/23_containers/multimap/operations/contains.cc: New.
2403 * testsuite/23_containers/multiset/operations/contains.cc: New.
2404 * testsuite/23_containers/set/operations/contains.cc: New.
2405 * testsuite/23_containers/unordered_map/operations/contains.cc: New.
2406 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
2407 New.
2408 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
2409 New.
2410 * testsuite/23_containers/unordered_set/operations/contains.cc: New.
2411
2412 2018-07-04 François Dumont <fdumont@gcc.gnu.org>
2413
2414 PR libstdc++/86272
2415 * include/debug/string
2416 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
2417 Use __glibcxx_check_insert_range.
2418 * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
2419 __gnu_debug::string when _GLIBCXX_DEBUG.
2420 * 21_strings/basic_string/init-list.cc: Likewise.
2421 * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
2422 * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
2423 * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
2424 * 21_strings/basic_string/types/1.cc: Likewise.
2425
2426 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2427
2428 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
2429 target for std::random_device.
2430 * testsuite/26_numerics/random/random_device/cons/default.cc:
2431 Likewise.
2432 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
2433 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
2434 * testsuite/experimental/random/randint.cc: Likewise.
2435 * testsuite/lib/libstdc++.exp
2436 (check_effective_target_random_device): New proc.
2437
2438 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2439 Jakub Jelinek <jakub@redhat.com>
2440
2441 * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
2442
2443 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
2444
2445 PR libstdc++/86398
2446 * include/std/type_traits (is_trivially_constructible): Check
2447 is_constructible before __is_trivially_constructible.
2448 * testsuite/20_util/is_trivially_constructible/value.cc: Add more
2449 tests, including negative cases.
2450 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
2451 zero for dg-error lineno.
2452 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2453 Likewise.
2454
2455 * include/std/bit (__rotl, __rotr): Avoid branch.
2456 (_If_is_unsigned_integer): Use remove_cv_t.
2457 * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
2458
2459 2018-07-03 Jonathan Wakely <jwakely@redhat.com>
2460
2461 P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
2462 * include/Makefile.am: Add new header.
2463 * include/Makefile.in: Regenerate.
2464 * include/precompiled/stdc++.h: Include new header.
2465 * include/std/bit: New header.
2466 (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
2467 (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
2468 Define for C++14.
2469 [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
2470 (countr_one, popcount): Define for C++2a. Also overload for std::byte.
2471 (ispow2, ceil2, floor2, log2p1): Define for C++2a.
2472 [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
2473 std::byte.
2474 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
2475 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
2476 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
2477 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
2478 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
2479 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
2480 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
2481 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
2482 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
2483 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
2484
2485 * include/bits/alloc_traits.h: Remove redundant preprocessor
2486 condition.
2487
2488 2018-07-03 François Dumont <fdumont@gcc.gnu.org>
2489
2490 * include/bits/stl_algobase.h (__niter_wrap): New.
2491 (__copy_move_a2(_II, _II, _OI)): Use latter.
2492 (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
2493 (fill_n(_OI, _Size, const _Tp&)): Likewise.
2494 (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
2495 * include/debug/stl_iterator.h
2496 (std::__niter_base(const __gnu_cxx::_Safe_iterator<
2497 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
2498 * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
2499 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
2500
2501 2018-07-02 Jonathan Wakely <jwakely@redhat.com>
2502
2503 P0758R1 Implicit conversion traits
2504 * include/std/type_traits [__cplusplus > 201703]
2505 (__is_convertible_helper::__is_nothrow_type): Define new member.
2506 (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
2507 noexcept.
2508 (__is_convertible_helper<_From, _To, false>::__test_nothrow)
2509 (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
2510 new members.
2511 (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
2512 * testsuite/20_util/is_nothrow_convertible/value.cc: New.
2513 * testsuite/20_util/is_nothrow_convertible/requirements/
2514 explicit_instantiation.cc: New.
2515 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
2516 New.
2517
2518 P0887R1 The identity metafunction
2519 * include/std/type_traits (type_identity, type_identity_t): Define
2520 for C++2a.
2521 * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
2522 * testsuite/20_util/type_identity/requirements/
2523 explicit_instantiation.cc:New.
2524 * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
2525
2526 * include/bits/regex.h (sub_match::operator string_type): Call str().
2527 (sub_match::compare): Use _M_str() instead of str().
2528 (sub_match::_M_compare): New public function.
2529 (sub_match::__string_view): New helper type.
2530 (sub_match::_M_str): New overloaded functions to avoid creating a
2531 string_type object when not needed.
2532 (operator==, operator!=, operator<, operator>, operator<=, operator>=):
2533 Use sub_match::_M_compare instead of creating string_type objects.
2534 Fix Doxygen comments.
2535 * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
2536 (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
2537 simplify.
2538 (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
2539 __enable_if_t.
2540 * include/std/type_traits (__enable_if_t): Define for C++11.
2541 * testsuite/28_regex/sub_match/compare.cc: New.
2542 * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
2543 trait.
2544 (input_iterator_wrapper): Use remove_cv for value_type argument of
2545 std::iterator base class.
2546
2547 2018-06-29 Jonathan Wakely <jwakely@redhat.com>
2548
2549 * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
2550 Add whitespace to dejagnu directive.
2551 * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
2552
2553 2018-06-27 François Dumont <fdumont@gcc.gnu.org>
2554
2555 * include/bits/stl_vector.h
2556 (struct _Vector_base<>::_Vector_impl_data): New.
2557 (struct _Vector_base<>::_Vector_impl): Inherit from latter.
2558 (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
2559 (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
2560 (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
2561 (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
2562 (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
2563 (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
2564 (_Vector_base()): Default.
2565 (_Vector_base(_Vector_base&&)): Default.
2566 (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
2567 (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
2568 (_Vector_base::_M_create_storage(size_t)): Make protected.
2569 (vector()): Default.
2570 (vector(vector&&)): Default.
2571 (vector(vector&&, const allocator_type&, true_type)): New.
2572 (vector(vector&&, const allocator_type&, false_type)): New.
2573 (vector(vector&&, const allocator_type&)): Use latters.
2574 (vector(_InputIte, _InputIte, const allocator_type&)): Call
2575 _M_range_initialize directly.
2576 * include/debug/vector
2577 (vector(vector&&, const allocator_type&)): Add noexcept qualification.
2578 * testsuite/23_containers/vector/allocator/default_init.cc: New.
2579 * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
2580 static assertions.
2581
2582 2018-06-27 Jonathan Wakely <jwakely@redhat.com>
2583
2584 * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
2585 (__is_byte<byte>): Define specialization for std::byte.
2586
2587 PR libstdc++/86138
2588 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
2589 Declare explicit instantiations of COW empty reps and I/O functions.
2590
2591 2018-06-26 David Edelsohn <dje.gcc@gmail.com>
2592
2593 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
2594 directives.
2595 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
2596
2597 2018-06-26 Jonathan Wakely <jwakely@redhat.com>
2598
2599 * include/bits/regex.tcc (regex_iterator::operator==): Add missing
2600 noexcept.
2601
2602 2018-06-25 Jonathan Wakely <jwakely@redhat.com>
2603
2604 PR libstdc++/86112
2605 * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
2606 Replace dict comprehension.
2607
2608 PR libstdc++/81092
2609 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2610
2611 PR libstdc++/86292
2612 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
2613 Add try-catch block.
2614 * testsuite/23_containers/vector/cons/86292.cc: New.
2615
2616 * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
2617
2618 * include/experimental/algorithm (sample, shuffle): Add new overloads
2619 using per-thread random number engine.
2620 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
2621 dependencies by using __gnu_test::test_container.
2622 * testsuite/experimental/algorithm/sample-2.cc: New.
2623 * testsuite/experimental/algorithm/shuffle.cc: New.
2624
2625 2018-06-22 Jonathan Wakely <jwakely@redhat.com>
2626
2627 * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
2628 different size_t mangling on 32-bit targets.
2629
2630 PR libstdc++/86280
2631 * include/experimental/memory_resource
2632 (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
2633 enough for result of left shift.
2634
2635 PR libstdc++/86138
2636 * include/bits/basic_string.tcc:
2637 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
2638 (basic_string<char>::_Rep::_S_empty_rep_storage)
2639 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
2640 instantiation declarations.
2641 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
2642 explicit instantiation declarations.
2643 * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
2644 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
2645
2646 2018-06-21 Jonathan Wakely <jwakely@redhat.com>
2647
2648 PR libstdc++/83328
2649 * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
2650 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
2651 * configure: Regenerate.
2652 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2653 (basic_string::insert(const_iterator, initializer_list<C>)): Add.
2654 [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
2655 (basic_string::insert(iterator, initializer_list<C>)): Suppress
2656 definition.
2657 * include/debug/string (basic_string::insert(iterator, C)): Change
2658 first parameter to const_iterator.
2659 (basic_string::insert(iterator, size_type, C)): Likewise. Change
2660 return type to iterator.
2661 (basic_string::insert(iterator, InputIterator, InputIterator)):
2662 Likewise.
2663 (basic_string::insert(iterator, initializer_list<C>)): Change first
2664 parameter to const_iterator and return type to iterator.
2665 * src/c++11/string-inst.cc: Extend comment.
2666 * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
2667 New.
2668 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
2669 New.
2670 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2671
2672 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2673
2674 PR libstdc++/70940
2675 * include/experimental/memory_resource
2676 (__resource_adaptor_imp::do_deallocate): Add missing return.
2677 * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
2678 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
2679 resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
2680 __gnu_cxx::malloc_allocator.
2681
2682 PR libstdc++/70940
2683 * include/experimental/memory_resource (__resource_adaptor_common):
2684 New base class.
2685 (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
2686 pointer from unaligned, and vice versa.
2687 (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
2688 allocated pointer to meet alignment request.
2689 (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
2690 original pointer for deallocation.
2691 (__resource_adaptor_imp::do_is_equal): Reformat.
2692 (__resource_adaptor_imp::_S_aligned_size): Remove.
2693 (__resource_adaptor_imp::_S_supported): Remove.
2694 (new_delete_resource): Use __gnu_cxx::new_allocator.
2695 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
2696 extended alignments and use debug_allocator to check for matching
2697 allocate/deallocate pairs.
2698
2699 2018-06-21 François Dumont <fdumont@gcc.gnu.org>
2700
2701 * include/debug/safe_iterator.h
2702 (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
2703 Compare __x base iterator with a value-initialized iterator of the
2704 same type.
2705
2706 2018-06-20 Jonathan Wakely <jwakely@redhat.com>
2707
2708 PR libstdc++/70966
2709 * include/experimental/memory_resource (__resource_adaptor_imp): Add
2710 static assertions to enforce requirements on pointer types.
2711 (__resource_adaptor_imp::get_allocator()): Add noexcept.
2712 (new_delete_resource, null_memory_resource): Return address of an
2713 object with dynamic storage duration.
2714 (__null_memory_resource): Remove.
2715 * testsuite/experimental/memory_resource/70966.cc: New.
2716
2717 * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
2718 missed from recent commit.
2719
2720 2018-06-19 Jonathan Wakely <jwakely@redhat.com>
2721
2722 * include/std/utility: Remove unused <exception> header.
2723
2724 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
2725
2726 LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
2727 * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
2728 (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
2729 a specialization of std::pair.
2730 * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
2731 pair elements are constructed correctly.
2732
2733 LWG 2989 hide path iostream operators from normal lookup
2734 * include/bits/fs_path.h (operator<<, operator>>): Define inline as
2735 friends.
2736 * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
2737
2738 LWG 3050 Fix cv-qualification of convertibility constraints
2739 * include/std/chrono (duration, operator*, operator/, operator%): Use
2740 const-qualified type as source type in is_convertible constraints.
2741 * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
2742 * testsuite/20_util/duration/cons/dr3050.cc: New.
2743 * testsuite/20_util/duration/literals/range.cc: Rename to...
2744 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
2745 dg-error lineno.
2746
2747 2018-06-18 Maya Rashish <coypu@sdf.org>
2748
2749 * crossconfig.m4: Handle OpenBSD just like NetBSD.
2750 * configure: Rebuilt.
2751
2752 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
2753
2754 P0754R2 <version> header
2755 * include/Makefile.am: Add new header.
2756 * include/Makefile.in: Regenerate.
2757 * include/bits/c++config: Change doxygen comment to suggest <version>
2758 instead of <iosfwd>.
2759 * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
2760 unconditionally. Add C++17 and C++20 headers.
2761 * include/std/version: New header.
2762 * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
2763 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
2764 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
2765 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
2766 * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
2767 * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
2768 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2769 New.
2770 * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
2771 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
2772 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
2773 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
2774 * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
2775 * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
2776 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
2777 New.
2778 * testsuite/18_support/headers/version/macros.cc: New.
2779 * testsuite/18_support/headers/version/macros.cc: New.
2780
2781 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
2782 enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
2783 symlink.
2784 * config.h.in: Regenerate.
2785 * configure: Regenerate.
2786 * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
2787
2788 LWG 3035. std::allocator's constructors should be constexpr
2789 * include/bits/allocator.h (allocator): Add constexpr to constructors
2790 for C++2a. Replace dynamic exception specifications with NOTHROW
2791 macro.
2792 (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
2793 NOTHROW.
2794 * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
2795 * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
2796 to constructors for C++2a.
2797 * include/ext/new_allocator.h (new_allocator): Likewise.
2798
2799 2018-06-16 Jonathan Wakely <jwakely@redhat.com>
2800
2801 LWG 3076 basic_string CTAD ambiguity
2802 * doc/xml/manual/intro.xml: Document LWG 3076 change.
2803 * include/bits/basic_string.h
2804 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
2805 (basic_string(const _CharT*, const _Alloc&)): Turn into a function
2806 template constrained by _RequireAllocator.
2807 (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
2808 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
2809 Define.
2810 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
2811 deduction
2812 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2813 Likewise.
2814
2815 2018-06-15 Jonathan Wakely <jwakely@redhat.com>
2816
2817 PR libstdc++/86169
2818 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2819 (basic_string::data()): Unshare string.
2820 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2821 New.
2822
2823 * include/std/string_view (basic_string_view(const CharT*)): Remove
2824 check for null pointer and add nonnull attribute.
2825 (compare(const CharT*), compare(size_type, size_type, const CharT*))
2826 (find(const CharT*, size_type), rfind(const CharT*, size_type))
2827 (find_first_of(const CharT*, size_type))
2828 (find_last_of(const CharT*, size_type))
2829 (find_first_not_of(const CharT*, size_type))
2830 (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
2831 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
2832 * testsuite/21_strings/basic_string_view/operations/compare/char/
2833 nonnull.cc: New.
2834 * testsuite/21_strings/basic_string_view/operations/find/char/
2835 nonnull.cc: New.
2836 * testsuite/21_strings/basic_string_view/operations/rfind/char/
2837 nonnull.cc: New.
2838
2839 PR libstdc++/86168
2840 * include/bits/random.h (random_device(const string&)): Remove
2841 default argument.
2842
2843 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
2844 define for C++17 and above.
2845
2846 LWG 2993 reference_wrapper<T> conversion from T&&
2847 * doc/xml/manual/intro.xml: Document LWG 2993 change.
2848 * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
2849 (reference_wrapper(_Tp&&)): Remove.
2850 (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
2851 template.
2852 (reference_wrapper): Add deduction guide.
2853 * testsuite/20_util/reference_wrapper/deduction.cc: New.
2854 * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
2855
2856 LWG 3039 Unnecessary decay in thread and packaged_task
2857 * include/std/future (__constrain_pkgdtask): Replace with ...
2858 (packaged_task::__not_same): New alias template, using
2859 __remove_cvref_t instead of decay.
2860 * include/std/thread (thread::__not_same): Add comment.
2861
2862 2018-06-14 Jonathan Wakely <jwakely@redhat.com>
2863
2864 LWG 3075 basic_string needs deduction guides from basic_string_view
2865 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
2866 deduction from string views.
2867 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2868 Likewise.
2869
2870 LWG 3074 make scalar types non-deduced in valarray non-member functions
2871 * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
2872 scalar parameters to be a non-deduced context.
2873 * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
2874 whitespace.
2875 * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
2876 * testsuite/26_numerics/valarray/transcend.cc: New.
2877
2878 * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
2879 Move back to <utility>.
2880 * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
2881 Restore to here.
2882
2883 P0935R0 Eradicating unnecessarily explicit default constructors
2884 * include/backward/strstream (strstreambuf): Add non-explicit default
2885 constructor.
2886 * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
2887 Likewise.
2888 * include/bits/regex.h (match_results): Likewise.
2889 * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
2890 default constructor.
2891 * testsuite/22_locale/conversions/string/1.cc: Likewise.
2892 * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
2893 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
2894
2895 * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
2896 macro from <utility> and change type to long.
2897 * include/std/utility (__cpp_lib_tuple_element_t): Remove.
2898 * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
2899 macro.
2900
2901 P0935R0 Eradicating unnecessarily explicit default constructors
2902 * include/bits/random.h (uniform_real_distribution::param_type)
2903 (normal_distribution::param_type, lognormal_distribution::param_type)
2904 (gamma_distribution::param_type, chi_squared_distribution::param_type)
2905 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
2906 (student_t_distribution::param_type)
2907 (bernoulli_distribution::param_type)
2908 (binomial_distribution::param_type)
2909 (geometric_distribution::param_type)
2910 (negative_binomial_distribution::param_type)
2911 (poisson_distribution::param_type)
2912 (exponential_distribution::param_type)
2913 (weibull_distribution::param_type)
2914 (extreme_value_distribution::param_type): Add non-explicit default
2915 constructors. Remove default argument for first parameter of explicit
2916 constructors.
2917 * include/bits/uniform_int_dist.h
2918 (uniform_int_distribution::param_type): Likewise.
2919 * include/ext/random
2920 (beta_distribution::param_type, rice_distribution::param_type)
2921 (nakagami_distribution::param_type, pareto_distribution::param_type)
2922 (k_distribution::param_type, arcsine_distribution::param_type)
2923 (hoyt_distribution::param_type, triangular_distribution::param_type)
2924 (von_mises_distribution::param_type)
2925 (hypergeometric_distribution::param_type)
2926 (logistic_distribution::param_type)
2927 (uniform_inside_sphere_distribution::param_type): Likewise.
2928 (uniform_on_sphere_distribution::param_type): Make default constructor
2929 non-explicit.
2930 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
2931 Test param_type for non-explicit default constructor.
2932 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
2933 Likewise.
2934 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
2935 Likewise.
2936 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
2937 Likewise.
2938 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
2939 Likewise.
2940 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
2941 Likewise.
2942 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
2943 Likewise.
2944 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
2945 Likewise.
2946 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
2947 Likewise.
2948 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
2949 Likewise.
2950 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
2951 Likewise.
2952 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
2953 Likewise.
2954 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
2955 Likewise.
2956 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
2957 Likewise.
2958 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
2959 Likewise.
2960 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
2961 Likewise.
2962 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
2963 Likewise.
2964 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
2965 Likewise.
2966 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
2967 Likewise.
2968 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
2969 Likewise.
2970 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
2971 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
2972 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
2973 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
2974 Likewise.
2975 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
2976 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
2977 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
2978 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
2979 Likewise.
2980 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
2981 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
2982 * testsuite/ext/random/triangular_distribution/cons/default.cc:
2983 Likewise.
2984 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
2985 Likewise.
2986 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
2987 Likewise.
2988 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
2989 Likewise.
2990
2991 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
2992 Jonathan Wakely <jwakely@redhat.com>
2993
2994 PR libstdc++/83982
2995 * include/bits/vector.tcc (vector::_M_default_append(size_type)):
2996 Default-construct new elements before moving existing ones.
2997 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
2998 New.
2999
3000 2018-06-13 Jonathan Wakely <jwakely@redhat.com>
3001
3002 PR libstdc++/86127
3003 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
3004 unused typedef.
3005 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
3006 Use node allocator to create and destroy elements.
3007 (forward_list::_Tp_alloc_type): Remove unused typedef.
3008 (forward_list::_Alloc_traits): Use allocator_traits instead of
3009 __gnu_cxx::__alloc_traits.
3010
3011 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
3012
3013 * include/debug/helper_functions.h
3014 (__gnu_debug::_Safe_iterator<>): Add declaration.
3015 (__can_advance(_Ite, _Size)): New.
3016 (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
3017 * include/debug/functions.h
3018 (__gnu_debug::_Safe_iterator<>): Remove declaration.
3019 * include/debug/stl_iterator.h
3020 (__can_advance(const _Safe_iterator<>&)): New definition.
3021 * include/debug/stl_iterator.h
3022 (__can_advance(const std::reverse_iterator<>&, _Size)): New.
3023 (__can_advance(const std::move_iterator<>&, _Size)): New.
3024 * include/debug/macros.h (__glibcxx_check_can_increment): New.
3025 * include/debug/debug.h (__glibcxx_requires_can_increment): New.
3026 * include/bits/stl_algobase.h (fill_n): Use latter.
3027 * testsuite/25_algorithms/fill_n/2.cc: New.
3028 * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
3029 * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
3030 * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
3031 * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
3032
3033 * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
3034 (__glibcxx_requires_can_decrement_range): New.
3035
3036 2018-06-12 François Dumont <fdumont@gcc.gnu.org>
3037
3038 * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
3039 (__glibcxx_check_can_decrement_range): New.
3040 * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
3041 __glibcxx_requires_can_increment_range.
3042 (std::move(_II, _II, _OI)): Likewise.
3043 (std::copy_backward(_BI, _BI, _BI2)): Use
3044 __glibcxx_requires_can_decrement_range.
3045 (std::move_backward(_BI, _BI, _BI2)): Likewise.
3046 * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
3047 * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
3048 * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
3049 * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
3050 * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
3051 * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
3052
3053 2018-06-12 Jonathan Wakely <jwakely@redhat.com>
3054
3055 P0935R0 Eradicating unnecessarily explicit default constructors
3056 * include/bits/random.h (linear_congruential_engine)
3057 (mersenne_twister_engine, subtract_with_carry_engine, random_device)
3058 (uniform_real_distribution, normal_distribution)
3059 (lognormal_distribution, gamma_distribution, chi_squared_distribution)
3060 (cauchy_distribution, fisher_f_distribution, student_t_distribution)
3061 (bernoulli_distribution, binomial_distribution,geometric_distribution)
3062 (negative_binomial_distribution, exponential_distribution)
3063 (weibull_distribution, extreme_value_distribution): Add non-explicit
3064 default constructors. Remove default argument for first parameter of
3065 explicit constructors.
3066 (piecewise_constant_distribution, piecewise_linear_distribution):
3067 Make default constructor non-explicit.
3068 * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
3069 non-explicit default constructors. Remove default argument for first
3070 parameter of explicit constructor.
3071 * include/ext/random
3072 (simd_fast_mersenne_twister_engine, beta_distribution)
3073 (rice_distribution, nakagami_distribution, pareto_distribution)
3074 (k_distribution, arcsine_distribution, hoyt_distribution)
3075 (triangular_distribution, von_mises_distribution)
3076 (hypergeometric_distribution, logistic_distribution)
3077 (uniform_inside_sphere_distribution): Likewise.
3078 (uniform_on_sphere_distribution): Make default constructor
3079 non-explicit.
3080 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
3081 Test for non-explicit default constructor. Fix references to standard.
3082 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
3083 Likewise.
3084 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
3085 Likewise.
3086 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
3087 Likewise.
3088 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
3089 Likewise.
3090 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
3091 Likewise.
3092 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
3093 Likewise.
3094 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
3095 Likewise.
3096 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
3097 Likewise.
3098 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
3099 Likewise.
3100 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
3101 Likewise.
3102 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
3103 Likewise.
3104 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
3105 Likewise.
3106 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
3107 Likewise.
3108 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
3109 Likewise.
3110 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
3111 Likewise.
3112 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
3113 Likewise.
3114 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
3115 Likewise.
3116 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
3117 Likewise.
3118 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
3119 Likewise.
3120 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
3121 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
3122 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
3123 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
3124 Likewise.
3125 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
3126 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
3127 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
3128 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
3129 Likewise.
3130 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
3131 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
3132 * testsuite/ext/random/triangular_distribution/cons/default.cc:
3133 Likewise.
3134 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
3135 Likewise.
3136 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
3137 Likewise.
3138 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
3139 Likewise.
3140 * testsuite/util/testsuite_common_types.h
3141 (implicitly_default_constructible): New helper.
3142
3143 2018-06-08 Jonathan Wakely <jwakely@redhat.com>
3144
3145 * include/bits/ios_base.h (ios::Init::Init(const Init&))
3146 (ios::Init::operator=): Define as defaulted.
3147 * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
3148 Likewise.
3149 * include/bits/stream_iterator.h (istream_iterator::operator=)
3150 (ostream_iterator::operator=): Likewise.
3151 * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
3152 Likewise.
3153 * include/std/bitset (bitset::reference::reference(const reference&)):
3154 Likewise.
3155 * include/std/complex (complex<float>::complex(const complex&))
3156 (complex<double>::complex(const complex&))
3157 (complex<long double>::complex(const complex&)): Likewise.
3158
3159 2018-06-07 Jonathan Wakely <jwakely@redhat.com>
3160
3161 * include/bits/regex.h (sub_match): Add noexcept to default
3162 constructor and length observer.
3163 (match_results): Add noexcept to default constructor and observers
3164 with no preconditions. Define destructor as defaulted.
3165 (operator==, operator!=, swap): Add noexcept.
3166 (regex_iterator): Add default member initializers and define default
3167 constructor and destructor as defaulted. Add noexcept to equality
3168 and dereference operators.
3169
3170 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
3171
3172 * src/c++11/debug.cc
3173 (_Safe_iterator_base::_M_detach()): Reset state only if needed.
3174 (_Safe_iterator_base::_M_detach_single()): Likewise.
3175 (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
3176 (_Safe_local_iterator_base::_M_detach_single()): Likewise.
3177
3178 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
3179
3180 * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
3181 move of const value.
3182
3183 2018-06-06 Jakub Jelinek <jakub@redhat.com>
3184
3185 PR c++/86068
3186 * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
3187 rather than __cpp_transactional_memory >= 201505L.
3188
3189 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
3190
3191 PR libstdc++/86008
3192 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
3193 Define new partial specialization.
3194 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
3195 new overload.
3196 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
3197 value not reference for iteration.
3198 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
3199 comment.
3200 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
3201 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
3202 comment.
3203
3204 2018-06-05 Jonathan Wakely <jwakely@redhat.com>
3205
3206 * include/std/type_traits: Fix comment typos.
3207
3208 * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
3209 mingw* targets.
3210 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
3211 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3212 Likewise.
3213
3214 2018-06-05 François Dumont <fdumont@gcc.gnu.org>
3215
3216 * include/bits/stl_tempbuf.h
3217 (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
3218 (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
3219 * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
3220 * include/bits/stl_algo.h (__stable_partition): Adapt.
3221 (__inplace_merge): Adapt.
3222 (__stable_sort): Adapt.
3223
3224 2018-06-04 Jonathan Wakely <jwakely@redhat.com>
3225
3226 PR libstdc++/85930
3227 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
3228 unconditionally. Remove redundant declaration.
3229 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
3230 alignment-specifier.
3231
3232 * include/bits/postypes.h (fpos): Define special members as defaulted.
3233
3234 PR libstdc++/85930
3235 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
3236 the static variable correctly.
3237
3238 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
3239
3240 PR libstdc++/78870 support std::filesystem on Windows
3241 * config.h.in: Regenerate.
3242 * configure: Regenerate.
3243 * configure.ac: Check for link, readlink and symlink.
3244 * include/bits/fs_path.h (path::operator/=(const path&)): Move
3245 definition out of class body.
3246 (path::is_absolute(), path::_M_append(path)): Likewise.
3247 (operator<<(basic_ostream, const path&)): Use std::quoted directly.
3248 (operator>>(basic_istream, path&)): Likewise.
3249 (u8path): Reorder definitions and fix Windows implementation.
3250 (path::is_absolute()): Define inline and fix for Windows.
3251 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
3252 Define POSIX version inline.
3253 (path::_M_append(path)): Define inline.
3254 * include/experimental/bits/fs_path.h (path::is_absolute()): Move
3255 definition out of class body.
3256 (operator<<(basic_ostream, const path&)): Fix type of delimiter and
3257 escape characters.
3258 (operator>>(basic_istream, path&)): Likewise.
3259 (path::is_absolute()): Define inline and fix for Windows.
3260 * src/filesystem/dir-common.h (__gnu_posix): New namespace.
3261 (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
3262 (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
3263 Define as adaptors for Windows functions/types or as
3264 using-declarations for POSIX functions/types.
3265 (_Dir_base, get_file_type): Qualify names to use declarations from
3266 __gnu_posix namespace.
3267 (_Dir_base::is_dor_or_dotdot): New helper functions.
3268 * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
3269 names to use declarations from __gnu_posix namespace.
3270 * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
3271 (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
3272 (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
3273 (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
3274 (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
3275 (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
3276 Define as adaptors for Windows functions/types or as
3277 using-declarations for POSIX functions/types.
3278 (stat_type, do_copy_file): Qualify names to use declarations from
3279 __gnu_posix namespace.
3280 (do_space): Declare new function.
3281 (make_file_type): Only use S_ISLNK if defined.
3282 * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
3283 path::value_type not char.
3284 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
3285 names to use declarations from __gnu_posix namespace.
3286 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
3287 add implementation for Windows.
3288 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
3289 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
3290 [!_PC_PATH_MAX]: Don't use pathconf.
3291 [PATH_MAX]: Use if defined.
3292 (filesystem::current_path(const path&, error_code&))
3293 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
3294 (filesystem::last_write_time, filesystem::permissions): Use names
3295 from __gnu_posix.
3296 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
3297 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
3298 implementation for Windows.
3299 (filesystem::rename, filesystem::resize_file): Use names from
3300 __gnu_posix.
3301 (filesystem::space): Use do_space.
3302 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
3303 (filesystem::status, filesystem::symlink_status): Use names from
3304 __gnu_posix.
3305 (filesystem::temp_directory_path): Add implementation for Windows.
3306 * src/filesystem/path.cc (dot): Define constant.
3307 (path::replace_extension): Use dot.
3308 (path::_M_find_extension): Likewise. Use path::string_type not
3309 std::string.
3310 (path::_M_split_cmpts): Use dot.
3311 (filesystem_error::_M_get_what): Use u8string() not native().
3312 * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
3313 Qualify names to use declarations from __gnu_posix namespace.
3314 * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
3315 correct error_code.
3316 (filesystem::absolute(const path&, error_code&)): Add implementation
3317 for Windows.
3318 (char_ptr, filesystem::canonical): Use path::value_type not char.
3319 (do_copy_file): Use names from __gnu_posix.
3320 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
3321 sendfile.
3322 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
3323 names to use declarations from __gnu_posix namespace.
3324 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
3325 add implementation for Windows.
3326 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
3327 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
3328 [!_PC_PATH_MAX]: Don't use pathconf.
3329 [PATH_MAX]: Use if defined.
3330 (filesystem::current_path(const path&, error_code&))
3331 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
3332 (filesystem::last_write_time, filesystem::permissions): Use names
3333 from __gnu_posix.
3334 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
3335 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
3336 implementation for Windows.
3337 (filesystem::rename, filesystem::resize_file): Use names from
3338 __gnu_posix.
3339 (do_space): Define.
3340 (filesystem::space): Use do_space.
3341 (filesystem::status, filesystem::symlink_status): Use names from
3342 __gnu_posix.
3343 (filesystem::temp_directory_path): Add implementation for Windows.
3344 * src/filesystem/std-path.cc
3345 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
3346 Define for Windows.
3347 (dot): Define constant.
3348 (path::replace_extension, is_dot): Use dot.
3349 (path::lexically_normal): Check _M_type instead of calling
3350 non-existent function.
3351 (path::_M_find_extension): Use dot. Use path::string_type not
3352 std::string.
3353 (path::_M_split_cmpts): Use dot.
3354 (filesystem_error::_M_get_what): Use u8string() not native().
3355 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
3356 use symlinks.
3357 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3358 Likewise.
3359 * testsuite/27_io/filesystem/operations/absolute.cc: Use
3360 __gnu_test::root_path() instead of "/" and add Windows-specific tests.
3361 * testsuite/27_io/filesystem/operations/canonical.cc: Use
3362 path::string() to get narrow string, not path::native().
3363 * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
3364 with std::filesystem::path not std::basic_string.
3365 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3366 * testsuite/27_io/filesystem/operations/exists.cc: Use
3367 __gnu_test::root_path() instead of "/".
3368 * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
3369 fstreams with std::filesystem::path not std::basic_string.
3370 * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
3371 path::string() to get narrow string.
3372 * testsuite/27_io/filesystem/operations/space.cc: Check results for
3373 errors, expect sensible values otherwise.
3374 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
3375 helpers for adjusting the environment on Windows.
3376 * testsuite/27_io/filesystem/path/append/path.cc: Test
3377 Windows-specific behaviour.
3378 * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
3379 of path::string_type objects.
3380 * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
3381 string to wide string on Windows.
3382 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
3383 for backslash as root-directory.
3384 * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
3385 path::string() to get narrow string.
3386 * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
3387 paths.
3388 * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
3389 not std::string.
3390 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
3391 different definintion of absolute paths on Windows.
3392 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3393 Do not use symlinks.
3394 * testsuite/experimental/filesystem/operations/absolute.cc: Test
3395 Windows behaviour.
3396 * testsuite/experimental/filesystem/operations/copy.cc: Construct
3397 fstreams with NTCTS not std::basic_string.
3398 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
3399 * testsuite/experimental/filesystem/operations/exists.cc: Use
3400 __gnu_test::root_path() instead of "/".
3401 * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
3402 fstreams with NTCTS not std::basic_string.
3403 * testsuite/experimental/filesystem/operations/last_write_time.cc:
3404 Use path::string() to get narrow string.
3405 * testsuite/experimental/filesystem/operations/space.cc: Use
3406 __gnu_test::root_path() instead of "/".
3407 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3408 Add helpers for adjusting the environment on Windows.
3409 * testsuite/experimental/filesystem/path/append/path.cc: Use
3410 path::string() to get narrow strings for comparisons.
3411 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
3412 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
3413 Likewise.
3414 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
3415 * testsuite/experimental/filesystem/path/native/string.cc: Use
3416 string_type not std::string.
3417 * testsuite/experimental/filesystem/path/query/is_absolute.cc:
3418 Adjust for different definintion of absolute paths on Windows.
3419 * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
3420 function.
3421 (__gnu_test::scoped_file): Construct fstreams with NTCTS not
3422 std::basic_string.
3423
3424 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
3425
3426 PR libstdc++/85951
3427 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
3428 uint_least16_t and uint_least32_t.
3429 (__make_unsigned<wchar_t>): Define unconditionally.
3430 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
3431 typedefs.
3432 (__make_unsigned_selector_base): New type to provide helper templates.
3433 (__make_unsigned_selector<_Tp, false, true>): Reimplement using
3434 __make_unsigned_selector_base helpers.
3435 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
3436 (__make_signed_selector<_Tp, true, false>): Remove intermediate
3437 typedefs.
3438 (__make_signed<wchar_t>, __make_signed<char16_t>)
3439 (__make_signed<char32_t>)): Define unconditionally.
3440 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
3441 wchar_t, char16_t and char32_t are transformed correctly.
3442 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
3443 dg-error lineno.
3444 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
3445 wchar_t, char16_t and char32_t are transformed correctly.
3446 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
3447 dg-error lineno.
3448
3449 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
3450
3451 * include/std/variant (__erased_dtor): Qualify call to __get.
3452
3453 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
3454
3455 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
3456 (_Rb_tree(const allocator_type&)): Use latter.
3457 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
3458 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
3459 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
3460 * include/bits/stl_multimap.h
3461 (multimap(const allocator_type&)): Likewise.
3462 (multimap(initializer_list<value_type>, const allocator_type&)):
3463 Likewise.
3464 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
3465 Likewise.
3466 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
3467 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
3468 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
3469 * include/bits/stl_multiset.h
3470 (multiset(const allocator_type&)): Likewise.
3471 (multiset(initializer_list<value_type>, const allocator_type&)):
3472 Likewise.
3473 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
3474 Likewise.
3475
3476 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
3477
3478 PR libstdc++/85768
3479 * src/c++11/debug.cc: Remove backtrace usage.
3480
3481 2018-05-24 Maya Rashish <coypu@sdf.org>
3482
3483 PR target/85904
3484 * crossconfig.m4: Test for aligned_alloc on netbsd.
3485 * configure: Regenerate.
3486
3487 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
3488
3489 PR libstdc++/69769
3490 PR libstdc++/85886
3491 * include/bits/atomic_base.h (__atomic_base::value_type)
3492 (__atomic_base::difference_type): Add new typedefs.
3493 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
3494 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
3495 (atomic<T*>::operator++, atomic<T*>::operator--)
3496 (atomic<T*>::operator+=, atomic<T*>::operator-=)
3497 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
3498 to enforce C++17 requirement on pointer arithmetic.
3499 (__atomic_val_t, __atomic_diff_t): New alias templates.
3500 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
3501 (atomic_compare_exchange_weak_explicit)
3502 (atomic_compare_exchange_strong_explicit, atomic_store)
3503 (atomic_exchange, atomic_compare_exchange_weak)
3504 (atomic_compare_exchange_strong): Use __atomic_val_t to make
3505 scalar parameters be non-deduced contexts.
3506 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
3507 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
3508 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
3509 parameters.
3510 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
3511 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
3512 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
3513 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
3514 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
3515 address types.
3516 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
3517 * testsuite/29_atomics/atomic/69769.cc: New test.
3518 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
3519 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
3520 Disable test for C++17 and later.
3521 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
3522 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
3523 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
3524 test.
3525
3526 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
3527
3528 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
3529 template to alias template.
3530 (path::__value_type_is_char): Use remove_const_t.
3531 (path:_S_string_from_iter): New helper function.
3532 (path::_S_convert(InputIter, __null_terminated))
3533 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
3534 Use _S_string_from_iter.
3535 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
3536 rep for COW strings.
3537 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
3538 Change from class template to alias template.
3539 (path::__value_type_is_char): Use remove_const.
3540 (path:_S_string_from_iter): New helper function.
3541 (path::_S_convert(InputIter, __null_terminated))
3542 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
3543 Use _S_string_from_iter.
3544 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
3545 wide strings.
3546 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
3547 string equality, not path equivalence.
3548 * testsuite/27_io/filesystem/path/construct/format.cc: Check
3549 construction from std::string and std::wstring and input iterators.
3550 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
3551 construction from iterators.
3552 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
3553 exact string equality, not path equivalence.
3554 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
3555 construction from iterators.
3556
3557 * include/bits/fs_path.h (path::_M_type): Change default member
3558 initializer to _Filename.
3559 (path::begin): Create past-the-end iterator for empty path.
3560 * src/filesystem/std-path.cc (path::remove_filename()): Remove
3561 debugging check.
3562 (path::has_relative_path()): Return false for empty filenames.
3563 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
3564 Fix offset of empty final component.
3565 * testsuite/27_io/filesystem/path/itr/components.cc: New.
3566 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
3567
3568 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
3569
3570 Add support for opening file streams from wide character strings.
3571 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
3572 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
3573 Define new overload.
3574 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
3575 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
3576 Declare new overload.
3577 * configure.ac: Check for _wfopen.
3578 * crossconfig.m4: Likewise.
3579 * configure: Regenerate.
3580 * config.h.in: Regenerate.
3581 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
3582 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
3583 Define new overload.
3584 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
3585 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
3586 Declare new overload.
3587 [_GLIBCXX_HAVE__WFOPEN]
3588 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
3589 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
3590 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
3591 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
3592 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
3593 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
3594 new overloads.
3595 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
3596 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
3597 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
3598 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
3599 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
3600 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
3601 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
3602
3603 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
3604
3605 PR libstdc++/85845
3606 * include/bits/stl_tree.h
3607 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
3608 qualification.
3609
3610 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
3611
3612 * src/filesystem/std-ops.cc (absolute): Report an error for empty
3613 paths.
3614 (weakly_canonical(const path&)): Do not call canonical on empty path.
3615 (weakly_canonical(const path&, error_code&)): Likewise.
3616 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
3617
3618 PR libstdc++/85818
3619 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
3620 dg-require-filesystem-ts.
3621
3622 PR libstdc++/85843
3623 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
3624 initialize base class to avoid warnings.
3625
3626 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
3627
3628 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
3629 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
3630 little_endian element in bitmask.
3631 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
3632 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
3633
3634 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
3635
3636 * include/bits/stl_tree.h
3637 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
3638 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
3639 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
3640 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
3641 * include/debug/map.h
3642 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
3643 * include/debug/multimap.h
3644 (multimap(multimap&&, const_allocator_type&)): Likewise.
3645 * include/debug/set.h
3646 (set(set&&, const_allocator_type&)): Likewise.
3647 * include/debug/multiset.h
3648 (multiset(multiset&&, const_allocator_type&)): Likewise.
3649 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
3650 Add checks.
3651 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
3652 Add checks.
3653 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
3654 Add checks.
3655 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
3656 Add checks.
3657 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
3658 Add checks.
3659 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
3660 Add checks.
3661 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
3662 Add checks.
3663 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
3664 Add checks.
3665
3666 2018-05-18 Jason Merrill <jason@redhat.com>
3667
3668 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
3669 for conversion to const_iterator. Add defaulted copy ops.
3670 * libsupc++/new (bad_alloc): Add defaulted copy ops.
3671 * libsupc++/exception.h (exception): Add defaulted copy ops.
3672 * include/std/system_error (system_error): Add defaulted copy ops.
3673 * include/std/stdexcept (domain_error, invalid_argument)
3674 (length_error, out_of_range, range_error, overflow_error)
3675 (underflow_error): Add defaulted copy ops.
3676 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
3677 copy assignment.
3678 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
3679 * include/ext/throw_allocator.h (condition_base): Add defaulted
3680 default and copy ctor and copy assignment.
3681
3682 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
3683
3684 PR libstdc++/85098
3685 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
3686 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
3687 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
3688 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
3689 definitions.
3690 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
3691 whitespace.
3692 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
3693 braces around body of do-while.
3694 * testsuite/28_regex/basic_regex/85098.cc: New
3695
3696 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
3697
3698 PR libstdc++/85818
3699 * src/filesystem/path.cc (path::preferred_separator): Add used
3700 attribute.
3701 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
3702
3703 PR libstdc++/85812
3704 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
3705 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
3706 Refactor to separate non-throwing and throwing implementations.
3707 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
3708 if constructing the object throws.
3709
3710 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
3711
3712 PR libstdc++/85749
3713 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
3714 (linear_congruential_engine, mersenne_twister_engine)
3715 (subtract_with_carry_engine, discard_block_engine)
3716 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
3717 constrain function templates taking seed sequences.
3718 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
3719 (mersenne_twister_engine::seed(_Sseq&))
3720 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
3721 match declarations.
3722 * include/ext/random (simd_fast_mersenne_twister_engine): Use
3723 __is_seed_seq to constrain function templates taking seed sequences.
3724 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
3725 Change return type to match declaration.
3726 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
3727 New.
3728 * testsuite/26_numerics/random/independent_bits_engine/cons/
3729 seed_seq2.cc: New.
3730 * testsuite/26_numerics/random/linear_congruential_engine/cons/
3731 seed_seq2.cc: New.
3732 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
3733 seed_seq2.cc: New.
3734 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
3735 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
3736 New.
3737 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
3738 seed_seq2.cc: New.
3739 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
3740 seed_seq2.cc: New.
3741
3742 PR libstdc++/83891
3743 * include/bits/fs_path.h (path::is_absolute()): Use same definition
3744 for all operating systems.
3745 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
3746 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
3747 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
3748 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
3749
3750 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
3751 unused <vector> header.
3752 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3753 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
3754 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
3755 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
3756 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3757 Likewise.
3758 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3759 Likewise.
3760 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
3761 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
3762 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3763 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
3764 * testsuite/experimental/filesystem/path/decompose/extension.cc:
3765 Likewise.
3766 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
3767 * testsuite/experimental/filesystem/path/query/has_extension.cc:
3768 Likewise.
3769 * testsuite/experimental/filesystem/path/query/has_filename.cc:
3770 Likewise.
3771 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
3772 Likewise.
3773 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
3774 Likewise.
3775 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
3776 Likewise.
3777 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
3778 Likewise.
3779 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
3780 Likewise.
3781 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
3782 * testsuite/experimental/filesystem/path/query/is_relative.cc:
3783 Likewise.
3784
3785 PR libstdc++/84159
3786 * include/bits/fs_path.h (path::operator/=, path::append): Construct
3787 temporary path before calling _M_append.
3788 (path::_M_append): Change parameter to path and implement C++17
3789 semantics.
3790 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
3791 and more examples from the standard.
3792 * testsuite/27_io/filesystem/path/append/source.cc: New.
3793 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
3794 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
3795
3796 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
3797 __invoke to prevent ADL.
3798
3799 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
3800
3801 PR libstdc++/81256
3802 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
3803 exceptions from _M_terminate_output().
3804 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
3805 exceptions from close().
3806 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
3807
3808 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
3809 (__valarray_get_storage): Call operator new directly. Remove ignored
3810 top-level restrict qualifier and add malloc attribute instead.
3811 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
3812
3813 PR libstdc++/67554
3814 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
3815 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
3816
3817 PR libstdc++/82966
3818 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
3819 instead of type.
3820 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
3821
3822 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
3823
3824 PR libstdc++/80165
3825 * testsuite/20_util/variant/80165.cc: New.
3826
3827 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
3828
3829 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
3830 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
3831 of C++11 containers with Debug Mode support.
3832 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
3833 * doc/html/*: Regenerate.
3834
3835 2018-05-10 Jason Merrill <jason@redhat.com>
3836
3837 * include/bits/regex_compiler.h (_S_cache_size): Change from
3838 function to variable.
3839
3840 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
3841
3842 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
3843 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
3844 argument defaulted to +1. Doxy comments on same.
3845 * testsuite/special_functions/02_assoc_legendre/
3846 check_value.cc: Regen.
3847 * testsuite/tr1/5_numerical_facilities/special_functions/
3848 02_assoc_legendre/check_value.cc: Regen.
3849
3850 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
3851
3852 PR libstdc++/85729
3853 * include/bits/c++config.h (__replacement_assert): Add linkage
3854 specification.
3855 * include/bits/std_abs.h: Add comment to closing brace of block.
3856 * include/c_global/cstddef: Add linkage specification.
3857 * include/c_global/cstring: Likewise.
3858 * include/c_global/cwchar: Likewise.
3859
3860 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
3861
3862 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
3863 Rename in...
3864 (_Safe_iterator<>::_S_constant()): ...that.
3865 * include/debug/safe_local_iterator.h
3866 (_Safe_local_iterator<>::_M_constant()): Rename in...
3867 (_Safe_local_iterator<>::_S_constant()): ...that.
3868 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
3869 (_Iterator_state::__rbegin): New.
3870 (_Iterator_state::__rmiddle): New.
3871 (_Iterator_state::__rend): New.
3872 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
3873 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
3874 iterator type.
3875 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
3876 _Is_iterator)): Likewise.
3877 (_Parameter::_S_reverse_state(_Iterator_state)): New.
3878 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
3879 _Is_iterator)): New.
3880 (_Parameter(std::reverse_iterator<> const&, const char*,
3881 _Is_iterator)): New.
3882 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
3883 const char*, _Is_iterator)): New.
3884 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
3885 New.
3886 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
3887 _Is_iterator)): New.
3888 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
3889 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
3890 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
3891
3892 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
3893
3894 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
3895 Use constexpr if in C++17 mode.
3896 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
3897 Copy from const object.
3898 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
3899
3900 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
3901
3902 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
3903 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
3904 backtrace.
3905
3906 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
3907 * include/debug/functions.h (__check_valid_range): Use latter.
3908 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
3909 use latter.
3910 * include/debug/deque
3911 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
3912 * include/debug/forward_list
3913 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
3914 Likewise.
3915 * include/debug/list
3916 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
3917 * include/debug/list
3918 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
3919 * include/debug/map.h
3920 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
3921 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
3922 Likewise.
3923 * include/debug/multimap.h
3924 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
3925 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
3926 const _Alloc&)): Likewise.
3927 * include/debug/set.h
3928 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
3929 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
3930 Likewise.
3931 * include/debug/multiset.h
3932 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
3933 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
3934 const _Alloc&)): Likewise.
3935 * include/debug/string
3936 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
3937 Likewise.
3938 * include/debug/unordered_map
3939 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
3940 Likewise.
3941 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
3942 const _Alloc&)): Likewise.
3943 * include/debug/unordered_set
3944 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
3945 Likewise.
3946 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
3947 const _Alloc&)): Likewise.
3948 * include/debug/vector
3949 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
3950
3951 * include/debug/formatter.h (_Error_formatter::_M_function): New.
3952 (_Error_formatter(const char*, unsigned int)): Adapt.
3953 (_Error_formatter::_M_at): Rename in...
3954 (_Error_formatter::_S_at): ...that and adapt.
3955 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
3956 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
3957 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
3958 when available.
3959
3960 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
3961
3962 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
3963 Use normal std::vector even in Debug Mode.
3964
3965 PR libstdc++/85672
3966 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
3967 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
3968 * include/Makefile.in: Regenerate.
3969 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
3970 within conditional block.
3971
3972 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
3973
3974 * doc/xml/manual/using.xml (table.cmd_options): Document that the
3975 C++17 Filesystem implementation also needs -lstdc++fs.
3976
3977 PR libstdc++/85671
3978 * include/bits/fs_path.h (operator/): Permit copy elision.
3979 * include/experimental/bits/fs_path.h (operator/): Likewise.
3980
3981 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
3982
3983 Moar PR libstdc++/80506
3984 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
3985 Fix magic number used in loop condition.
3986
3987 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
3988
3989 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
3990 * include/std/optional (_Optional_payload): Add noexcept to default
3991 constructor. Re-indent.
3992 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
3993 constructor for copying disengaged payloads.
3994 (_Optional_payload<_Tp, true, false, true>): Likewise.
3995 (_Optional_payload<_Tp, true, true, false>): Likewise.
3996 (_Optional_payload<_Tp, true, false, false>): Likewise.
3997 * testsuite/20_util/optional/cons/85642.cc: New.
3998 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
3999
4000 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
4001
4002 PR libstdc++/82644
4003 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
4004 inline definitions instead of using-declarations.
4005 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
4006 * testsuite/tr1/5_numerical_facilities/special_functions/
4007 07_conf_hyperg/compile_cxx17.cc: New.
4008 * testsuite/tr1/5_numerical_facilities/special_functions/
4009 17_hyperg/compile_cxx17.cc: New.
4010
4011 PR libstdc++/84769
4012 * include/std/variant (visit): Qualify std::get call.
4013
4014 PR libstdc++/85632 use uintmax_t for arithmetic
4015 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
4016 arithmetic in result type.
4017 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
4018 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
4019 is greater than free space.
4020 * testsuite/experimental/filesystem/operations/space.cc: New.
4021
4022 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
4023 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
4024 New.
4025 * testsuite/20_util/remove_cvref/value.cc: New.
4026 * testsuite/20_util/remove_cvref/value_ext.cc: New.
4027
4028 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
4029 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
4030 (append(const basic_string&, size_type, size_type)
4031 (assign(const basic_string&, size_type, size_type)
4032 (insert(size_type, const basic_string&, size_type, size_type)
4033 (replace(size_type,size_type,const basic_string&,size_type,size_type)
4034 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
4035 Add default arguments (LWG 2268).
4036 [_GLIBCXX_USE_CXX11_ABI=0]
4037 (append(const basic_string&, size_type, size_type)
4038 (assign(const basic_string&, size_type, size_type)
4039 (insert(size_type, const basic_string&, size_type, size_type)
4040 (replace(size_type,size_type,const basic_string&,size_type,size_type)
4041 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
4042 Likewise.
4043 * testsuite/21_strings/basic_string/dr2268.cc: New test.
4044
4045 PR libstdc++/84535
4046 * include/std/thread (thread::__not_same): New SFINAE helper.
4047 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
4048 first argument is not a std::thread. Add static assertion to check
4049 INVOKE expression is valid.
4050 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
4051 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
4052 __invoke_result for return types and remove exception specifications.
4053 * testsuite/30_threads/thread/cons/84535.cc: New.
4054
4055 * include/std/future (__async_result_of): Use __invoke_result instead
4056 of result_of.
4057
4058 * include/std/any (any_cast): Use __remove_cvref_t.
4059 * include/std/tuple (__make_tuple): Likewise.
4060 * include/std/type_traits (__remove_cvref_t): Define.
4061 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
4062 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
4063 * include/std/variant (__erased_hash): Use __remove_cvref_t.
4064
4065 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
4066
4067 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
4068 ensure overloaded comma not used.
4069 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
4070 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
4071 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
4072 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
4073 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
4074 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
4075 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
4076
4077 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
4078
4079 PR libstdc++/68197
4080 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
4081 indices to unsigned.
4082 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
4083 as failure. Refactor error handling.
4084 * testsuite/27_io/ios_base/storage/68197.cc: New.
4085
4086 PR libstdc++/57997
4087 PR libstdc++/83860
4088 * include/bits/gslice_array.h (gslice_array): Define default
4089 constructor as deleted, as per C++11 standard.
4090 * include/bits/mask_array.h (mask_array): Likewise.
4091 * include/bits/slice_array.h (slice_array): Likewise.
4092 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
4093 to namespace __detail.
4094 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
4095 members.
4096 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
4097 of data members in closure objects.
4098 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
4099 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
4100 __detail.
4101 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
4102 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
4103 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
4104 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
4105 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
4106 using-declarations to namespace std.
4107 * testsuite/26_numerics/valarray/83860.cc: New.
4108
4109 * testsuite/backward/strstream_move.cc: Remove duplicate function
4110 call.
4111
4112 PR libstdc++/69608
4113 * include/backward/strstream (strstreambuf): Define move constructor
4114 and move assignment operator.
4115 (istrstream, ostrstream, strstream): Likewise.
4116 * testsuite/backward/strstream_move.cc: New.
4117
4118 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
4119
4120 PR libstdc++/84654
4121 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
4122 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
4123 * configure: Regenerate.
4124 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
4125 based on ENABLE_FLOAT128.
4126 * include/Makefile.in: Regenerate.
4127 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
4128 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
4129 _GLIBCXX_USE_FLOAT128.
4130
4131 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
4132
4133 * configure: Regenerated.
4134
4135 2018-04-19 Jakub Jelinek <jakub@redhat.com>
4136
4137 * configure: Regenerated.
4138
4139 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
4140 Jakub Jelinek <jakub@redhat.com>
4141
4142 PR libstdc++/85442
4143 * src/c++11/Makefile.am: Don't generate debuginfo again for
4144 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
4145 * src/c++11/Makefile.in: Regenerate.
4146
4147 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
4148
4149 PR libstdc++/84442
4150 * testsuite/30_threads/thread/cons/terminate.cc
4151 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
4152
4153 2018-04-18 David Malcolm <dmalcolm@redhat.com>
4154
4155 PR jit/85384
4156 * configure: Regenerate.
4157
4158 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
4159
4160 * testsuite/experimental/filesystem/file_status/1.cc: Add
4161 -DUSE_FILESYSTEM_TS to dg-options.
4162 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
4163 Likewise.
4164 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
4165 * testsuite/experimental/filesystem/iterators/
4166 recursive_directory_iterator.cc: Likewise.
4167 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
4168 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
4169 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
4170 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
4171 * testsuite/experimental/filesystem/operations/create_directories.cc:
4172 Likewise.
4173 * testsuite/experimental/filesystem/operations/create_directory.cc:
4174 Likewise.
4175 * testsuite/experimental/filesystem/operations/create_symlink.cc:
4176 Likewise.
4177 * testsuite/experimental/filesystem/operations/current_path.cc:
4178 Likewise.
4179 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
4180 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
4181 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
4182 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
4183 * testsuite/experimental/filesystem/operations/last_write_time.cc:
4184 Likewise.
4185 * testsuite/experimental/filesystem/operations/permissions.cc:
4186 Likewise.
4187 * testsuite/experimental/filesystem/operations/read_symlink.cc:
4188 Likewise.
4189 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
4190 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
4191 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
4192 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
4193 Likewise.
4194 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
4195 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
4196 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
4197 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
4198 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
4199 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
4200 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
4201 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
4202 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
4203 * testsuite/experimental/filesystem/path/construct/default.cc:
4204 Likewise.
4205 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
4206 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
4207 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4208 Likewise.
4209 * testsuite/experimental/filesystem/path/decompose/extension.cc:
4210 Likewise.
4211 * testsuite/experimental/filesystem/path/decompose/filename.cc:
4212 Likewise.
4213 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
4214 Likewise.
4215 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
4216 Likewise.
4217 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
4218 Likewise.
4219 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
4220 Likewise.
4221 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
4222 Likewise.
4223 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
4224 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
4225 Likewise.
4226 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
4227 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
4228 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
4229 Likewise.
4230 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
4231 Likewise.
4232 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
4233 Likewise.
4234 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
4235 Likewise.
4236 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
4237 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
4238 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
4239 Likewise.
4240 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
4241 * testsuite/experimental/filesystem/path/query/has_extension.cc:
4242 Likewise.
4243 * testsuite/experimental/filesystem/path/query/has_filename.cc:
4244 Likewise.
4245 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
4246 Likewise.
4247 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
4248 Likewise.
4249 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
4250 Likewise.
4251 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
4252 Likewise.
4253 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
4254 Likewise.
4255 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
4256 * testsuite/experimental/filesystem/path/query/is_relative.cc:
4257 Likewise.
4258
4259 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
4260
4261 * src/c++11/Makefile.am: Fix sed command.
4262 * src/c++11/Makefile.in: Regenerate.
4263
4264 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
4265 handle mangled names starting with double underscores on darwin.
4266 * src/c++11/Makefile.in: Regenerate.
4267
4268 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
4269
4270 * src/c++11/Makefile.am: Fix comment.
4271 * src/c++11/Makefile.in: Regenerate.
4272 * src/c++11/cxx11-ios_failure.cc: Fix comment.
4273 * src/c++98/ios_failure.cc: Likewise.
4274
4275 * src/c++11/ios.cc: Remove redundant macro definition.
4276
4277 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
4278
4279 * doc/xml/manual/abi.xml: Document header locations in recent
4280 releases.
4281 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
4282 * doc/xml/manual/spine.xml: Update copyright years.
4283 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
4284 undefined behaviour.
4285 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
4286 * doc/html/*: Regenerate.
4287
4288 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
4289
4290 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
4291 * doc/xml/manual/backwards_compatibility.xml: Likewise.
4292 * doc/xml/manual/containers.xml: Likewise.
4293 * doc/xml/manual/debug_mode.xml: Likewise.
4294 * doc/xml/manual/extensions.xml: Likewise.
4295 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
4296 * doc/xml/manual/using.xml: Likewise.
4297 * doc/xml/manual/utilities.xml: Likewise.
4298
4299 PR libstdc++/85222
4300 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
4301 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
4302 * src/c++11/Makefile.in: Regenerate.
4303 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
4304 New types.
4305 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
4306 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
4307 * src/c++98/ios_failure.cc (__construct_ios_failure)
4308 (__destroy_ios_failure, is_ios_failure_handler): New functions.
4309 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
4310 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
4311 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
4312 handler types, to always catch std::ios_base::failure.
4313 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
4314 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
4315 exceptions_failbit.cc: Likewise.
4316 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
4317 exceptions_failbit.cc: Likewise.
4318 * testsuite/27_io/basic_istream/extractors_other/char/
4319 exceptions_null.cc: Likewise.
4320 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
4321 exceptions_null.cc: Likewise.
4322 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
4323 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
4324 * testsuite/27_io/basic_ostream/inserters_other/char/
4325 exceptions_null.cc: Likewise.
4326 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
4327 exceptions_null.cc: Likewise.
4328 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
4329
4330 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
4331
4332 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
4333 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
4334
4335 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
4336
4337 PR libstdc++/85183
4338 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
4339 value categories.
4340 * testsuite/20_util/variant/85183.cc: New.
4341
4342 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
4343
4344 * include/std/variant (__get): Qualify calls to avoid ADL.
4345 (__select_index): Adjust whitespace.
4346 (variant): Add using-declaration to workaround Clang bug.
4347
4348 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
4349
4350 PR libstdc++/85040
4351 * include/bits/stl_function.h (greater::__not_overloaded)
4352 (less::__not_overloaded, greater_equal::__not_overloaded)
4353 (less_equal::__not_overloaded): Fix ambiguous specializations.
4354 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
4355 tests for type with overloaded operators.
4356
4357 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4358
4359 PR libstdc++/77691
4360 * testsuite/experimental/memory_resource/resource_adaptor.cc:
4361 xfail execution on 32-bit Solaris/x86.
4362
4363 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
4364
4365 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
4366 VERIFY instead of assert.
4367 * testsuite/20_util/hash/84998.cc: New test.
4368 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
4369 copy of test adjusted for Debug Mode.
4370 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
4371 test in Debug Mode.
4372
4373 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
4374
4375 PR libstdc++/84998
4376 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
4377 * include/std/bitset: Likewise.
4378 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
4379 declaration.
4380 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
4381 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
4382 * include/bits/stl_set.h (std::set<>): Likewise.
4383 * include/bits/unordered_map.h (std::unordered_map<>): Fix
4384 _Hash_merge_helper friend declaration.
4385 (std::unordered_multimap<>): Likewise.
4386 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
4387 (std::unordered_multiset<>): Likewise.
4388
4389 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
4390
4391 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
4392 trailing slash for domain level link.
4393 * doc/xml/faq.xml: Ditto.
4394 * doc/xml/manual/appendix_free.xml (software): Ditto.
4395 * doc/xml/manual/intro.xml: Ditto.
4396 * doc/xml/manual/spine.xml: Ditto.
4397 * doc/xml/spine.xml: Ditto.
4398
4399 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
4400
4401 * doc/xml/manual/documentation_hacking.xml: Adjust link to
4402 docbook.org.
4403
4404 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
4405
4406 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
4407 to compile as C++98.
4408
4409 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
4410
4411 PR libstdc++/78420
4412 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
4413 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
4414 to ensure total order for pointers.
4415 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
4416 Add operator() overloads for pointer arguments and make generic
4417 overloads dispatch to new _S_cmp functions when comparisons would
4418 use built-in operators for pointers.
4419 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
4420
4421 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
4422
4423 PR libstdc++/84773
4424 PR libstdc++/83662
4425 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
4426 * configure: Regenerate.
4427 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
4428 (aligned_alloc): Add using-declaration.
4429 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
4430
4431 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
4432
4433 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
4434 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
4435 registration.
4436
4437 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
4438
4439 PR libstdc++/84769
4440 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
4441 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
4442
4443 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
4444 src/filesystem/std-ops.cc (create_dir): Likewise.
4445
4446 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
4447
4448 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
4449 (StdListIteratorPrinter): Inherit from latter.
4450 (StdFwdListIteratorPrinter): New, inherit from latter.
4451 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
4452 when iterator has no associated container.
4453 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
4454 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
4455 registrations.
4456 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
4457 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
4458
4459 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
4460
4461 PR libstdc++/84601
4462 * include/std/optional (_Optional_payload): Split into multiple
4463 specializations that can handle different cases of trivial or
4464 non-trivial assignment operators.
4465 * testsuite/20_util/optional/84601.cc: New.
4466 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
4467
4468 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
4469
4470 PR libstdc++/84671
4471 * include/bits/parse_numbers.h (_Number_help): Add partial
4472 specialization to handle digit separators. Adjust partial
4473 specialization for recursion temrination to require _Pow == 1ULL.
4474 * testsuite/20_util/duration/literals/84671.cc: New
4475
4476 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
4477
4478 Implement the missing bits of LWG 2769
4479 * include/std/any (any_cast(const any&)): Add static_assert.
4480 (any_cast(any&)): Likewise.
4481 (any_cast(any&&)): Likewise, and remove the handling
4482 for copyable-but-not-movable type.
4483 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
4484 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
4485 add new tests.
4486
4487 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
4488
4489 PR libstdc++/84532
4490 * include/std/thread (thread::__make_invoker): Construct tuple
4491 directly instead of using make_tuple.
4492 * testsuite/30_threads/async/84532.cc: New.
4493 * testsuite/30_threads/thread/84532.cc: New.
4494
4495 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
4496
4497 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
4498 (template<> __aligned_buffer): Define as __aligned_membuf alias.
4499
4500 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
4501
4502 PR target/84148
4503 * configure: Regenerate.
4504
4505 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
4506
4507 PR libstdc++/81797
4508 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
4509 * configure: Regenerate.
4510 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
4511 defined.
4512 * include/Makefile.in: Regenerate.
4513
4514 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
4515
4516 PR libstdc++/83833
4517 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
4518 Add -ffloat-store to options for m68k and ia32.
4519
4520 * doc/xml/faq.xml: Update copyright years.
4521 * doc/html/*: Regenerate.
4522
4523 PR libstdc++/83658
4524 * include/std/any (any::__do_emplace): Only set _M_manager after
4525 constructing the contained object.
4526 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
4527 * testsuite/20_util/any/modifiers/83658.cc: New test.
4528
4529 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
4530
4531 PR libstdc++/81076
4532 * include/c_global/cstddef (__byte_operand): Define primary template.
4533 * testsuite/18_support/byte/81076.cc: New test.
4534
4535 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
4536
4537 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
4538 dg-options and dg-add-options order.
4539 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
4540 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
4541 Likewise.
4542 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
4543 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
4544 Likewise.
4545 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
4546 Likewise.
4547 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
4548 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
4549 Likewise.
4550 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
4551 Likewise.
4552 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
4553 Likewise.
4554 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
4555 Likewise.
4556 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
4557 Likewise.
4558 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
4559 Likewise.
4560 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
4561 Likewise.
4562 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
4563 Likewise.
4564 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
4565 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
4566 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
4567 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
4568 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
4569 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
4570 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
4571 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
4572 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
4573 Likewise.
4574 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
4575 Likewise.
4576 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
4577 Likewise.
4578 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
4579 Likewise.
4580
4581 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
4582
4583 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
4584 include linux/types.h when checking linux/random.h header.
4585 * config.h.in: Regenerate.
4586 * configure: Ditto.
4587 * src/c++11/random.cc: Conditionally include linux/types.h.
4588
4589 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
4590
4591 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
4592
4593 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
4594
4595 PR libstdc++/83834
4596 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
4597 pattern with exact match for std::cerr.
4598
4599 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
4600
4601 PR libstdc++/83833
4602 * include/bits/random.h (chi_squared_distribution::param): Update
4603 gamma distribution parameter.
4604 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
4605 test.
4606
4607 PR libstdc++/83830
4608 * include/std/type_traits (has_unique_object_representations_v): Add
4609 variable template.
4610 * testsuite/20_util/has_unique_object_representations/value.cc: Check
4611 variable template.
4612
4613 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
4614
4615 Make optional conditionally
4616 trivially_{copy,move}_{constructible,assignable}
4617 * include/std/optional (_Optional_payload): Fix the comment in
4618 the class head and turn into a primary and one specialization.
4619 (_Optional_payload::_M_engaged): Strike the NSDMI.
4620 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
4621 New.
4622 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
4623 Likewise.
4624 (_Optional_payload<_Tp, false>::_M_get): Likewise.
4625 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
4626 (_Optional_base_impl): Likewise.
4627 (_Optional_base): Turn into a primary and three specializations.
4628 (optional(nullopt)): Change the base init.
4629 * testsuite/20_util/optional/assignment/8.cc: New.
4630 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4631 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
4632
4633 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
4634
4635 PR libstdc++/80276
4636 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
4637 (get_template_arg_list): New.
4638 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
4639 instead.
4640 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
4641 of strings and regular expressions.
4642 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
4643 (FilteringTypePrinter): Add docstring. Match using startswith. Use
4644 strip_inline_namespaces instead of strip_versioned_namespace.
4645 (add_one_type_printer): Prepend namespace to match argument.
4646 (register_type_printers): Add type printers for char16_t and char32_t
4647 string types and for types using cxx11 ABI. Update calls to
4648 add_one_template_type_printer to provide default argument dicts.
4649 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
4650 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
4651 basic_string<unsigned char> and basic_string<signed char>.
4652 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
4653 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
4654
4655 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
4656
4657 PR libstdc++/81092
4658 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
4659
4660 2018-01-13 Tim Shen <timshen@google.com>
4661
4662 PR libstdc++/83601
4663 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
4664 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
4665 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
4666
4667 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4668
4669 PR libstdc++/64054
4670 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
4671 Remove dg-xfail-run-if.
4672
4673 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
4674
4675 * include/bits/forward_list.h
4676 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
4677 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
4678 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
4679 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
4680 (_Fwd_list_impl()): Add noexcept qualification.
4681 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
4682 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
4683 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
4684 (_Fwd_list_base()): Default.
4685 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
4686 (_Fwd_list_base(_Fwd_list_base&&)): Default.
4687 (forward_list<>()): Default.
4688 (forward_list<>(forward_list&&)): Default.
4689 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
4690 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
4691 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
4692 * include/bits/forward_list.tcc
4693 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
4694 _M_impl._M_head move assignment.
4695 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
4696 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
4697
4698 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
4699
4700 PR libstdc++/80276
4701 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
4702 (UniquePointerPrinter): Print correct template argument, not type of
4703 the pointer.
4704 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
4705 a type.
4706 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
4707 array type.
4708 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
4709 weak_ptr of array types.
4710
4711 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
4712
4713 PR libstdc++/83709
4714 * include/bits/hashtable_policy.h
4715 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
4716 __first != __last.
4717 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
4718 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
4719 Add false_type parameter.
4720 (_Insert_base::insert): Adapt.
4721 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
4722 Adapt.
4723 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
4724 Add __n_elt parameter, defaulted to 1.
4725 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
4726 policy _M_need_rehash.
4727 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
4728 produce only 1 rehash if necessary.
4729 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
4730 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
4731
4732 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
4733 Jonathan Wakely <jwakely@redhat.com>
4734
4735 PR libstdc++/59253 (partial)
4736 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
4737 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
4738 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
4739 children.
4740 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
4741 of unique_ptr printer.
4742 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
4743 output of shared_ptr printer.
4744
4745 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
4746
4747 PR libstdc++/83626
4748 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
4749 unnecessary symlink_status call.
4750 (remove_all(const path&, error_code&)): Use filesystem::remove.
4751 * src/filesystem/std-ops.cc: Likewise.
4752
4753 PR libstdc++/83279
4754 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
4755 sendfile.
4756
4757 PR libstdc++/83626
4758 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
4759 report an error for ENOENT.
4760 (remove_all(const path&)): Fix type of result variable.
4761 (remove_all(const path&, error_code&)): Use non-throwing increment
4762 for directory iterator. Call POSIX remove directly to avoid redundant
4763 calls to symlink_status. Do not report errors for ENOENT.
4764 * src/filesystem/std-ops.cc: Likewise.
4765 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
4766 overload.
4767 * testsuite/experimental/filesystem/operations/remove_all.cc:
4768 Likewise.
4769
4770 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
4771
4772 PR libstdc++/83626
4773 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
4774 redundant call to ec.clear().
4775 (remove_all(const path&, error_code&))): Do not return an error for
4776 non-existent paths.
4777 * src/filesystem/std-ops.cc: Likewise.
4778 * testsuite/27_io/filesystem/operations/remove.cc: New test.
4779 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
4780 results for non-existent paths.
4781 * testsuite/experimental/filesystem/operations/remove.cc: New test.
4782 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
4783 expected results for non-existent paths.
4784
4785 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
4786 check status_known once.
4787 * include/experimental/bits/fs_ops.h: Likewise.
4788
4789 PR libstdc++/83607
4790 * include/std/functional (__is_byte_like): New trait.
4791 (__is_std_equal_to): Remove.
4792 (__boyer_moore_base_t): Use __is_byte_like instead of
4793 __is_std_equal_to.
4794 * include/experimental/functional (__is_std_equal_to): Remove.
4795 (__boyer_moore_base_t): Use __is_byte_like instead of
4796 __is_std_equal_to.
4797 * testsuite/20_util/function_objects/83607.cc: New test.
4798
4799 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
4800
4801 Protect optional's deduction guide with the feature macro
4802 * include/std/optional: Use the feature macro.
4803
4804 2018-01-03 Jakub Jelinek <jakub@redhat.com>
4805
4806 Update copyright years.
4807 \f
4808 Copyright (C) 2018 Free Software Foundation, Inc.
4809
4810 Copying and distribution of this file, with or without modification,
4811 are permitted in any medium without royalty provided the copyright
4812 notice and this notice are preserved.