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