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