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