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