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