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