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