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