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