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