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