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