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