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