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