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