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