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