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