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