Refactor std::optional SFINAE constraints
[gcc.git] / libstdc++-v3 / ChangeLog
1 2018-08-20 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/std/optional (_Optional_payload): Use variable templates
4 for conditions in default template arguments and exception
5 specifications.
6 (optional): Likewise. Adjust indentation.
7 (optional::__not_self, optional::__not_tag, optional::_Requires): New
8 SFINAE helpers.
9 (optional::optional): Use new helpers in constructor constraints.
10 * include/std/type_traits (__or_v, __and_v): New variable templates.
11 * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to
12 dg-prune-output. Remove unused header.
13
14 2018-08-18 François Dumont <fdumont@gcc.gnu.org>
15
16 * testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
17 _GLIBCXX_DEBUG.
18
19 2018-08-17 Jonathan Wakely <jwakely@redhat.com>
20
21 PR libstdc++/86963
22 * include/std/tuple (__tuple_base): New class template with deleted
23 copy assignment operator.
24 (tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that
25 implicit copy/move assignment operator will be deleted/suppressed.
26 (tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper
27 functions for SFINAE constraints on assignment operators.
28 (tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable):
29 New helper functions for exception specifications.
30 (tuple::operator=(const tuple&), tuple::operator=(tuple&&))
31 (tuple<_T1, _T2>::operator=(const tuple&))
32 (tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to
33 __nonesuch_no_braces when the operator should be defined implicitly.
34 Use __nothrow_assignable for exception specifications.
35 (tuple::operator=(const tuple<_UElements...>&))
36 (tuple::operator=(tuple<_UElements...>&&))
37 (tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&))
38 (tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&))
39 (tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&))
40 (tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using
41 __assignable and use __nothrow_assignable for exception
42 specifications.
43 * python/libstdcxx/v6/printers.py (is_specialization_of): Accept
44 gdb.Type as first argument, instead of a string.
45 (StdTuplePrinter._iterator._is_nonempty_tuple): New method to check
46 tuple for expected structure.
47 (StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple.
48 * testsuite/20_util/tuple/dr2729.cc: New test.
49 * testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error
50 to dg-prune-output.
51
52 2018-08-16 Jonathan Wakely <jwakely@redhat.com>
53
54 * include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning
55 about signed/unsigned comparison.
56
57 * include/std/ostream (basic_ostream::sentry::~sentry): Suppress
58 deprecation warnings for using uncaught_exception().
59
60 PR libstdc++/86447
61 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
62 (logic_error::logic_error(logic_error&&))
63 (logic_error::operator=(logic_error&&))
64 (runtime_error::runtime_error(runtime_error&&))
65 (runtime_error::operator=(runtime_error&&)): Copy strings instead of
66 moving, to avoid allocating empty reps for moved-from strings.
67
68 2018-08-15 Jonathan Wakely <jwakely@redhat.com>
69
70 * include/experimental/regex: Remove begin/end macros for namespace.
71 * include/experimental/string: Likewise.
72 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
73 New test.
74 * testsuite/experimental/polymorphic_allocator/
75 pmr_typedefs_forward_list.cc: New test.
76 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
77 New test.
78 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
79 New test.
80 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
81 New test.
82 * testsuite/experimental/polymorphic_allocator/
83 pmr_typedefs_multimap.cc: New test.
84 * testsuite/experimental/polymorphic_allocator/
85 pmr_typedefs_multiset.cc: New test.
86 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
87 New test.
88 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
89 New test.
90 * testsuite/experimental/polymorphic_allocator/
91 pmr_typedefs_unordered_map.cc: New test.
92 * testsuite/experimental/polymorphic_allocator/
93 pmr_typedefs_unordered_multimap.cc: New test.
94 * testsuite/experimental/polymorphic_allocator/
95 pmr_typedefs_unordered_multiset.cc: New test.
96 * testsuite/experimental/polymorphic_allocator/
97 pmr_typedefs_unordered_set.cc: New test.
98 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
99 New test.
100
101 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
102 calls to __uses_allocator_construct_impl and __use_alloc.
103 * include/experimental/memory_resource
104 (polymorphic_allocator::_M_construct): Remove.
105 (polymorphic_allocator::construct): Call __uses_allocator_construct.
106 Qualify calls to __use_alloc.
107 * include/std/memory_resource (polymorphic_allocator::construct): Fix
108 type in SFINAE constraint. Use constexpr if instead of tag dispatching
109 to _S_construct overloads.
110 (polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of
111 arguments to _S_construct_p.
112 (polymorphic_allocator::_S_construct): Remove.
113 (polymorphic_allocator::_S_construct_p): Return allocators by value
114 not by reference.
115 * include/std/scoped_allocator (scoped_allocator_adaptor::construct):
116 Qualify calls to __use_alloc.
117 * testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test,
118 copied from testsuite/20_util/scoped_allocator/construct_pair.cc.
119 * testsuite/experimental/polymorphic_allocator/1.cc: New test.
120 * testsuite/experimental/polymorphic_allocator/construct_pair.cc:
121 New test.
122
123 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
124 (atomic_mem_res): Add unsynchronized definition for single-threaded.
125
126 2018-08-14 Jonathan Wakely <jwakely@redhat.com>
127
128 PR libstdc++/86954
129 * include/bits/stl_tempbuf.h (return_temporary_buffer): Use
130 non-placement delete.
131
132 * include/std/chrono (__check_overflow): Simplify definition.
133 (_Checked_integral_constant): Remove.
134
135 PR libstdc++/86846
136 * src/c++17/default_resource.h: New file, defining default_res.
137 * src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2]
138 (atomic_mem_res): Define alternative for atomic<memory_resource*>
139 using a mutex instead of atomics.
140
141 PR libstdc++/85343
142 * config/abi/pre/gnu.ver: Export new symbol.
143 * doc/xml/manual/abi.xml: Document new versions.
144 * include/bits/fstream.tcc (basic_filebuf<C, T>::underflow)
145 (basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure.
146 * include/bits/functexcept.h (__throw_ios_failure(const char*, int)):
147 Declare new overload.
148 * src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor
149 and static member function.
150 (__throw_ios_failure(const char*, int)): Define.
151 * src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI]
152 (__throw_ios_failure(const char*, int)): Define.
153
154 2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us>
155
156 * include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&))
157 (_Rope_const_iterator::operator=(const _Rope_const_iterator&))
158 (_Rope_iterator::operator=(const _Rope_iterator&)): Ensure
159 copied/assigned rope iterators don't retain pointers to the iterator
160 they were copied/assigned from.
161 * testsuite/ext/rope/7.cc: New.
162
163 2018-08-13 Jonathan Wakely <jwakely@redhat.com>
164
165 PR libstdc++/45093
166 * include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
167 Combine definitions to avoid --detect-odr-violations warning.
168
169 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
170 __is_pow2 to check for valid alignment. Avoid branching when rounding
171 size to multiple of alignment.
172
173 * include/Makefile.am: Install <bit> and <version> for freestanding.
174 * include/Makefile.in: Regenerate.
175 * testsuite/17_intro/freestanding.cc: Check for <bit> and <version>.
176
177 Revert
178 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
179
180 PR target/85904
181 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
182 Newlib.
183 * configure: Regenerate.
184
185 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
186
187 PR libstdc++/68210
188 * doc/xml/manual/intro.xml: Document LWG 206 change.
189 * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
190 * libsupc++/del_opa.cc: Likewise.
191 * libsupc++/del_opant.cc: Likewise.
192 * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead
193 of free(ptr).
194 * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
195 * libsupc++/del_opsa.cc: Likewise.
196 * libsupc++/del_opva.cc: Likewise.
197 * libsupc++/del_opvant.cc: Likewise.
198 * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr)
199 instead of operator delete(ptr).
200 * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept.
201 * libsupc++/del_opvsa.cc: Likewise.
202 * libsupc++/new_op.cc: Use __builtin_expect in check for zero size.
203 * libsupc++/new_opa.cc: Use nullptr instead of literal 0.
204 * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT
205 with noexcept.
206 * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of
207 malloc(sz).
208 * libsupc++/new_opvant.cc: Use nullptr and noexcept.
209 * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of
210 operator new(sz, nothrow).
211 * testsuite/18_support/new_nothrow.cc: New test.
212
213 2018-08-10 Martin Liska <mliska@suse.cz>
214
215 * libsupc++/new_op.cc (new): Remove __builtin_expect as malloc
216 predictor can handle that.
217 * libsupc++/new_opa.cc: Likewise.
218 * libsupc++/new_opnt.cc (new): Likewise.
219
220 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
221
222 PR target/85904
223 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for
224 Newlib.
225 * configure: Regenerate.
226
227 2018-08-10 Jonathan Wakely <jwakely@redhat.com>
228
229 * include/std/deque (std::pmr::deque): Declare alias.
230 * include/std/forward_list (std::pmr::forward_list): Likewise.
231 * include/std/list (std::pmr::list): Likewise.
232 * include/std/map (std::pmr::map, std::pmr::multimap): Likewise.
233 * include/std/regex (std::pmr::match_results, std::pmr::cmatch)
234 (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise.
235 * include/std/set (std::pmr::set, std::pmr::multiset): Likewise.
236 * include/std/string (std::pmr::basic_string, std::pmr::string)
237 (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring):
238 Likewise.
239 * include/std/unordered_map (std::pmr::unordered_map)
240 (std::pmr::unordered_multimap): Likewise.
241 * include/std/unordered_set (std::pmr::unordered_set)
242 (std::pmr::unordered_multiset): Likewise.
243 * include/std/vector (std::pmr::vector): Likewise.
244 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test.
245 * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test.
246 * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test.
247 * testsuite/23_containers/list/pmr_typedefs.cc: New test.
248 * testsuite/23_containers/map/pmr_typedefs.cc: New test.
249 * testsuite/23_containers/multimap/pmr_typedefs.cc: New test.
250 * testsuite/23_containers/multiset/pmr_typedefs.cc: New test.
251 * testsuite/23_containers/set/pmr_typedefs.cc: New test.
252 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test.
253 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New
254 test.
255 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New
256 test.
257 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test.
258 * testsuite/23_containers/vector/pmr_typedefs.cc: New test.
259 * testsuite/28_regex/match_results/pmr_typedefs.cc: New test.
260
261 2018-08-08 François Dumont <fdumont@gcc.gnu.org>
262
263 * include/bits/stl_algo.h
264 (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag))
265 (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag))
266 (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code
267 duplication...
268 (rotate(_Ite, _Ite, _Ite)): ...here.
269 (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)):
270 Simplify rotate call.
271 (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)):
272 Likewise.
273 (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)):
274 Likewise.
275
276 2018-08-08 Jonathan Wakely <jwakely@redhat.com>
277
278 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to
279 avoid clashing with an ::aligned_alloc function that was not detected
280 by configure.
281
282 * doc/xml/manual/using.xml: Fix markup for empty table entry.
283 * doc/html/*: Regenerate.
284
285 * doc/xml/manual/using.xml: Add missing header to table and fix typo.
286 * doc/html/*: Regenerate.
287
288 PR libstdc++/86597
289 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)):
290 Clear error_code when cached type is used.
291 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test.
292
293 2018-08-07 Jonathan Wakely <jwakely@redhat.com>
294
295 PR libstdc++/86874
296 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
297 here instead of in _Move_assign_base.
298 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
299 (_Copy_assign_base::operator=): Use _M_destructive_move when changing
300 the contained value to another alternative.
301 (_Move_assign_base::operator=): Likewise.
302 (_Move_assign_base::_M_destructive_move): Remove.
303 * testsuite/20_util/variant/86874.cc: New test.
304
305 PR libstdc++/86861
306 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc):
307 Replace macro with inline function.
308 [__sun]: Increase alignment to meet memalign precondition.
309 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN]
310 (aligned_alloc): Move check for valid alignment to operator new.
311 Remove redundant check for non-zero size, it's enforced by the caller.
312 (operator new): Move check for valid alignment here. Use
313 __builtin_expect on check for zero size.
314
315 * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members.
316 * include/std/memory_resource (monotonic_buffer_resource::release):
317 Call _M_release_buffers to free buffers.
318 (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to
319 allocate a new buffer from upstream.
320 (monotonic_buffer_resource::_M_new_buffer): Declare.
321 (monotonic_buffer_resource::_M_release_buffers): Declare.
322 (monotonic_buffer_resource::_Chunk): Replace definition with
323 declaration as opaque type.
324 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk):
325 Define.
326 (monotonic_buffer_resource::_M_new_buffer): Define.
327 (monotonic_buffer_resource::_M_release_buffers): Define.
328
329 2018-08-05 François Dumont <fdumont@gcc.gnu.org>
330
331 * include/bits/stl_iterator.h: Fix comment.
332
333 2018-08-03 Jonathan Wakely <jwakely@redhat.com>
334
335 * src/c++11/system_error.cc
336 (system_error_category::default_error_condition): Add workaround for
337 ENOTEMPTY and EEXIST having the same value on AIX.
338 * testsuite/19_diagnostics/error_category/system_category.cc: Add
339 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY.
340
341 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
342
343 * configure: Regenerate.
344 * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS.
345 * src/c++11/futex.cc: Use __glibcxx_assert instead of
346 _GLIBCXX_DEBUG_ASSERT.
347
348 2018-08-01 Mike Crowe <mac@mcrowe.com>
349
350 * include/std/condition_variable (wait_for): Use steady_clock.
351
352 2018-08-01 Mike Crowe <mac@mcrowe.com>
353
354 * include/std/condition_variable (wait_until): Only report timeout
355 if we really have timed out when measured against the
356 caller-supplied clock.
357 * testsuite/30_threads/condition_variable/members/2.cc: Add test
358 case to confirm above behaviour.
359
360 2018-08-01 Jonathan Wakely <jwakely@redhat.com>
361
362 PR libstdc++/60555
363 * src/c++11/system_error.cc
364 (system_error_category::default_error_condition): New override to
365 check for POSIX errno values.
366 * testsuite/19_diagnostics/error_category/generic_category.cc: New
367 * testsuite/19_diagnostics/error_category/system_category.cc: New
368 test.
369
370 2018-07-31 Jonathan Wakely <jwakely@redhat.com>
371
372 PR libstdc++/86751
373 * include/bits/stl_pair.h (__pair_base): New class with deleted copy
374 assignment operator.
375 (pair): Derive from __pair_base.
376 (pair::operator=): Remove deleted overload.
377 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer
378 so that new base class isn't shown in GDB.
379 * testsuite/20_util/pair/86751.cc: New test.
380 * testsuite/20_util/pair/ref_assign.cc: New test.
381
382 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
383 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here.
384 (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier
385 instead of __has_builtin.
386 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)
387 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here.
388 * include/std/version [!_GLIBCXX_HAS_GTHREADS]
389 (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock)
390 (__cpp_lib_shared_mutex): Don't define when Gthreads not in use.
391 [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP]
392 (__cpp_lib_has_unique_object_representations): Don't define when
393 builtin not available.
394 [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate):
395 Likewise.
396 [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise.
397 * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition
398 from here.
399
400 * doc/xml/manual/test.xml: Improve documentation on writing tests for
401 newer standards.
402 * doc/xml/manual/using.xml: Document all headers for C++11 and later.
403 * doc/html/*: Regenerate.
404
405 * include/ext/pointer.h [__cplusplus >= 201103L]
406 (_Pointer_adapter::operator bool): Add explicit conversion operator
407 to replace safe bool idiom.
408
409 2018-07-30 Jonathan Wakely <jwakely@redhat.com>
410
411 PR libstdc++/86734
412 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call
413 _S_to_pointer (LWG 1052, LWG 2118).
414 (reverse_iterator::_S_to_pointer): Define overloaded helper functions.
415 * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test.
416 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test.
417
418 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add
419 workaround for aligned_alloc bug on AIX.
420 * testsuite/18_support/new_aligned.cc: New test.
421
422 2018-07-26 Marek Polacek <polacek@redhat.com>
423
424 * testsuite/30_threads/condition_variable_any/cond.cc: New.
425
426 2018-07-26 Marek Polacek <polacek@redhat.com>
427
428 * src/c++98/locale_init.cc: Fix #ifdef condition.
429
430 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
431
432 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add
433 dg-require-cstdint directive.
434 * testsuite/20_util/allocator/overaligned.cc: Likewise.
435 * testsuite/20_util/any/cons/aligned.cc: Likewise.
436 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise.
437 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise.
438 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
439 Likewise.
440 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
441 * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise.
442 * testsuite/23_containers/set/allocator/move_assign.cc: Likewise.
443 * testsuite/25_algorithms/make_heap/complexity.cc: Likewise.
444 * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and
445 random_device effective-target.
446 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
447 * testsuite/25_algorithms/sample/1.cc: Require cstdint.
448 * testsuite/25_algorithms/sample/2.cc: Likewise.
449 * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint
450 and random_device.
451 * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require
452 cstdint.
453 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
454 Likewise.
455 * testsuite/26_numerics/random/discard_block_engine/requirements/
456 constexpr_data.cc: Likewise.
457 * testsuite/26_numerics/random/discard_block_engine/requirements/
458 constexpr_functions.cc: Likewise.
459 * testsuite/26_numerics/random/independent_bits_engine/requirements/
460 constexpr_functions.cc: Likewise.
461 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
462 constexpr_data.cc: Likewise.
463 * testsuite/26_numerics/random/linear_congruential_engine/requirements/
464 constexpr_functions.cc: Likewise.
465 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
466 constexpr_data.cc: Likewise.
467 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/
468 constexpr_functions.cc: Likewise.
469 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise.
470 * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise.
471 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
472 constexpr_data.cc: Add dg-require-cstdint directive.
473 * testsuite/26_numerics/random/shuffle_order_engine/requirements/
474 constexpr_functions.cc: Likewise.
475 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
476 constexpr_data.cc: Likewise.
477 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
478 constexpr_functions.cc: Likewise.
479 * testsuite/26_numerics/random/uniform_real_distribution/operators/
480 64351.cc: Likewise.
481 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
482 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
483 * testsuite/experimental/algorithm/sample.cc: Likewise.
484 * testsuite/experimental/algorithm/search.cc: Likewise.
485 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
486 * testsuite/experimental/any/cons/aligned.cc: Likewise.
487 * testsuite/experimental/memory_resource/new_delete_resource.cc:
488 Likewise.
489 * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise.
490 * testsuite/experimental/random/randint.cc: Likewise.
491 * testsuite/experimental/source_location/1.cc: Likewise.
492 * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise.
493 * testsuite/ext/malloc_allocator/overaligned.cc: Likewise.
494 * testsuite/ext/mt_allocator/overaligned.cc: Likewise.
495 * testsuite/ext/new_allocator/overaligned.cc: Likewise.
496 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise.
497 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
498 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
499 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
500 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
501 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
502 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
503 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
504 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
505 * testsuite/ext/pool_allocator/overaligned.cc: Likewise.
506 * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise.
507 * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise.
508 * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
509 * testsuite/ext/throw_allocator/check_new.cc: Likewise.
510 * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise.
511 * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
512 * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise.
513 * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
514 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
515
516 * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
517 * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
518 * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
519 * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
520 Likewise.
521 * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
522 * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
523 * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
524 Likewise.
525 * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc:
526 Likewise.
527 * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc:
528 Likewise.
529 * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
530 * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
531 * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
532 * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
533 * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
534 * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
535 Likewise.
536 * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
537 Likewise.
538 * testsuite/30_threads/recursive_timed_mutex/dest/
539 destructor_locked.cc: Likewise.
540 * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
541 * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
542 * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
543 Likewise.
544 * testsuite/30_threads/recursive_timed_mutex/native_handle/
545 typesizes.cc: Likewise.
546 * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc:
547 Likewise.
548 * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
549 Likewise.
550 * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
551 Likewise.
552 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
553 Likewise.
554 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
555 Likewise.
556 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
557 Likewise.
558 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
559 Likewise.
560 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
561 Likewise.
562 * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
563 * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
564 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
565 * testsuite/30_threads/scoped_lock/requirements/
566 explicit_instantiation.cc: Likewise.
567 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise.
568 * testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
569 * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
570 * testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
571 * testsuite/30_threads/shared_future/cons/default.cc: Likewise.
572 * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
573 * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
574 * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
575 * testsuite/30_threads/shared_future/members/get.cc: Likewise.
576 * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
577 * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
578 * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
579 * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
580 * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
581 * testsuite/30_threads/shared_future/requirements/
582 explicit_instantiation.cc: Likewise.
583 * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
584 * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
585 * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
586 * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
587 * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
588 * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
589 * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
590 * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
591 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
592 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
593 * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
594 * testsuite/30_threads/shared_lock/requirements/
595 explicit_instantiation.cc: Likewise.
596 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
597 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
598 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise.
599 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
600 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
601 Likewise.
602 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
603 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
604 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
605 * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
606 * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
607 * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
608 * testsuite/30_threads/shared_timed_mutex/requirements/
609 standard_layout.cc: Likewise.
610 * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
611 * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
612 * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
613 * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
614 * testsuite/30_threads/this_thread/1.cc: Likewise.
615 * testsuite/30_threads/this_thread/2.cc: Likewise.
616 * testsuite/30_threads/this_thread/3.cc: Likewise.
617 * testsuite/30_threads/this_thread/4.cc: Likewise.
618 * testsuite/30_threads/this_thread/58038.cc: Likewise.
619 * testsuite/30_threads/thread/70503.cc: Likewise.
620 * testsuite/30_threads/thread/84532.cc: Likewise.
621 * testsuite/30_threads/thread/adl.cc: Likewise.
622 * testsuite/30_threads/thread/cons/1.cc: Likewise.
623 * testsuite/30_threads/thread/cons/2.cc: Likewise.
624 * testsuite/30_threads/thread/cons/3.cc: Likewise.
625 * testsuite/30_threads/thread/cons/4.cc: Likewise.
626 * testsuite/30_threads/thread/cons/49668.cc: Likewise.
627 * testsuite/30_threads/thread/cons/5.cc: Likewise.
628 * testsuite/30_threads/thread/cons/6.cc: Likewise.
629 * testsuite/30_threads/thread/cons/7.cc: Likewise.
630 * testsuite/30_threads/thread/cons/8.cc: Likewise.
631 * testsuite/30_threads/thread/cons/84535.cc: Likewise.
632 * testsuite/30_threads/thread/cons/9.cc: Likewise.
633 * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
634 * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
635 * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise.
636 * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
637 * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
638 * testsuite/30_threads/thread/id/operators.cc: Likewise.
639 * testsuite/30_threads/thread/members/1.cc: Likewise.
640 * testsuite/30_threads/thread/members/2.cc: Likewise.
641 * testsuite/30_threads/thread/members/3.cc: Likewise.
642 * testsuite/30_threads/thread/members/4.cc: Likewise.
643 * testsuite/30_threads/thread/members/5.cc: Likewise.
644 * testsuite/30_threads/thread/members/hardware_concurrency.cc:
645 Likewise.
646 * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
647 * testsuite/30_threads/thread/swap/1.cc: Likewise.
648 * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
649 * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
650 * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
651 * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
652 * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
653 * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
654 * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
655 Likewise.
656 * testsuite/30_threads/timed_mutex/requirements/
657 standard_layout.cc: Likewise.
658 * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
659 * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
660 * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
661 * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
662 * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
663 * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
664 * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
665 * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
666 * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
667 * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
668 * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
669 * testsuite/30_threads/try_lock/1.cc: Likewise.
670 * testsuite/30_threads/try_lock/2.cc: Likewise.
671 * testsuite/30_threads/try_lock/3.cc: Likewise.
672 * testsuite/30_threads/try_lock/4.cc: Likewise.
673 * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
674 * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
675 * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
676 * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
677 * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
678 * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
679 * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
680 * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
681 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
682 * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
683 * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
684 * testsuite/30_threads/unique_lock/requirements/
685 explicit_instantiation.cc: Likewise.
686 * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
687
688 * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint
689 directive.
690 * testsuite/30_threads/async/49668.cc: Likewise.
691 * testsuite/30_threads/async/54297.cc: Likewise.
692 * testsuite/30_threads/async/84532.cc: Likewise.
693 * testsuite/30_threads/async/any.cc: Likewise.
694 * testsuite/30_threads/async/async.cc: Likewise.
695 * testsuite/30_threads/async/except.cc: Likewise.
696 * testsuite/30_threads/async/forced_unwind.cc: Likewise.
697 * testsuite/30_threads/async/launch.cc: Likewise.
698 * testsuite/30_threads/async/lwg2021.cc: Likewise.
699 * testsuite/30_threads/async/sync.cc: Likewise.
700 * testsuite/30_threads/call_once/39909.cc: Likewise.
701 * testsuite/30_threads/call_once/49668.cc: Likewise.
702 * testsuite/30_threads/call_once/60497.cc: Likewise.
703 * testsuite/30_threads/call_once/call_once1.cc: Likewise.
704 * testsuite/30_threads/call_once/constexpr.cc: Likewise.
705 * testsuite/30_threads/call_once/dr2442.cc: Likewise.
706 * testsuite/30_threads/call_once/once_flag.cc: Likewise.
707 * testsuite/30_threads/condition_variable/54185.cc: Likewise.
708 * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
709 * testsuite/30_threads/condition_variable/cons/assign_neg.cc:
710 Likewise.
711 * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
712 * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
713 * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
714 * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
715 * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
716 * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
717 * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
718 Likewise.
719 * testsuite/30_threads/condition_variable/requirements/
720 standard_layout.cc: Likewise.
721 * testsuite/30_threads/condition_variable/requirements/typedefs.cc:
722 * Likewise.
723 * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
724 * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
725 * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
726 * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc:
727 Likewise.
728 * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc:
729 Likewise.
730 * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
731 * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
732 * testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
733 * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
734 * testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
735 * testsuite/30_threads/future/cons/default.cc: Likewise.
736 * testsuite/30_threads/future/cons/move.cc: Likewise.
737 * testsuite/30_threads/future/cons/move_assign.cc: Likewise.
738 * testsuite/30_threads/future/members/45133.cc: Likewise.
739 * testsuite/30_threads/future/members/get.cc: Likewise.
740 * testsuite/30_threads/future/members/get2.cc: Likewise.
741 * testsuite/30_threads/future/members/share.cc: Likewise.
742 * testsuite/30_threads/future/members/valid.cc: Likewise.
743 * testsuite/30_threads/future/members/wait.cc: Likewise.
744 * testsuite/30_threads/future/members/wait_for.cc: Likewise.
745 * testsuite/30_threads/future/members/wait_until.cc: Likewise.
746 * testsuite/30_threads/future/requirements/explicit_instantiation.cc:
747 Likewise.
748 * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc:
749 Likewise.
750 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
751 * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
752 * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise.
753 * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
754 * testsuite/30_threads/lock/1.cc: Likewise.
755 * testsuite/30_threads/lock/2.cc: Likewise.
756 * testsuite/30_threads/lock/3.cc: Likewise.
757 * testsuite/30_threads/lock/4.cc: Likewise.
758 * testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
759 * testsuite/30_threads/lock_guard/requirements/
760 explicit_instantiation.cc: Likewise.
761 * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
762 * testsuite/30_threads/mutex/cons/1.cc: Likewise.
763 * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
764 * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
765 * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
766 * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
767 * testsuite/30_threads/mutex/lock/1.cc: Likewise.
768 * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
769 * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
770 * testsuite/30_threads/mutex/requirements/standard_layout.cc::
771 Likewise.
772 * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
773 * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
774 * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
775 * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
776 * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
777 * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
778 * testsuite/30_threads/packaged_task/49668.cc: Likewise.
779 * testsuite/30_threads/packaged_task/60564.cc: Likewise.
780 * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
781 * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
782 * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
783 * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
784 * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
785 * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
786 * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
787 * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
788 * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
789 * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
790 * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
791 * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
792 Likewise.
793 * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
794 * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
795 * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
796 * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
797 * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
798 * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
799 * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
800 * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
801 * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
802 * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
803 * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
804 * testsuite/30_threads/packaged_task/requirements/
805 explicit_instantiation.cc: Likewise.
806 * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
807 * testsuite/30_threads/promise/60966.cc: Likewise.
808 * testsuite/30_threads/promise/69106.cc: Likewise.
809 * testsuite/30_threads/promise/cons/1.cc: Likewise.
810 * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
811 * testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
812 * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
813 * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
814 * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
815 * testsuite/30_threads/promise/cons/move.cc: Likewise.
816 * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
817 * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
818 * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
819 * testsuite/30_threads/promise/members/get_future.cc: Likewise.
820 * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
821 * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
822 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
823 * testsuite/30_threads/promise/members/set_value.cc: Likewise.
824 * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
825 * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
826 * testsuite/30_threads/promise/members/swap.cc: Likewise.
827 * testsuite/30_threads/promise/requirements/explicit_instantiation.cc:
828 * Likewise.
829 * testsuite/30_threads/promise/uses_allocator.cc: Likewise.
830
831 * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names
832 from namespace std.
833 * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive.
834 * testsuite/20_util/duration/arithmetic/1.cc: Likewise.
835 * testsuite/20_util/duration/arithmetic/2.cc: Likewise.
836 * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
837 * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
838 * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
839 * testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
840 * testsuite/20_util/duration/cons/1.cc: Likewise.
841 * testsuite/20_util/duration/cons/1_neg.cc: Likewise.
842 * testsuite/20_util/duration/cons/2.cc: Likewise.
843 * testsuite/20_util/duration/cons/54025.cc: Likewise.
844 * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
845 * testsuite/20_util/duration/requirements/explicit_instantiation/
846 explicit_instantiation.cc: Likewise.
847 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
848 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
849 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
850 * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise.
851 * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
852 * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
853 * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
854 * testsuite/20_util/ratio/cons/cons1.cc: Likewise.
855 * testsuite/20_util/ratio/operations/45866.cc: Likewise.
856 * testsuite/20_util/ratio/operations/47913.cc: Likewise.
857 * testsuite/20_util/ratio/operations/53840.cc: Likewise.
858 * testsuite/20_util/ratio/operations/ops1.cc: Likewise.
859 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
860 * testsuite/20_util/system_clock/1.cc: Likewise.
861 * testsuite/20_util/time_point/1.cc: Likewise.
862 * testsuite/20_util/time_point/2.cc: Likewise.
863 * testsuite/20_util/time_point/3.cc: Likewise.
864 * testsuite/20_util/time_point/requirements/explicit_instantiation/
865 explicit_instantiation.cc: Likewise.
866 * testsuite/21_strings/basic_string/requirements/
867 explicit_instantiation/char16_t/1.cc: Likewise.
868 * testsuite/21_strings/basic_string/requirements/
869 explicit_instantiation/char32_t/1.cc: Likewise.
870 * testsuite/21_strings/basic_string_view/requirements/
871 explicit_instantiation/char16_t/1.cc: Likewise.
872 * testsuite/21_strings/basic_string_view/requirements/
873 explicit_instantiation/char32_t/1.cc: Likewise.
874 * testsuite/21_strings/char_traits/requirements/
875 explicit_instantiation/char16_t/1.cc: Likewise.
876 * testsuite/21_strings/char_traits/requirements/
877 explicit_instantiation/char32_t/1.cc: Likewise.
878 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise.
879 * testsuite/22_locale/codecvt/char16_t.cc: Likewise.
880 * testsuite/22_locale/codecvt/char32_t.cc: Likewise.
881 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
882 Likewise.
883 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
884 Likewise.
885 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
886 Likewise.
887 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
888 * testsuite/23_containers/vector/bool/72847.cc: Likewise.
889 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
890 Likewise.
891 * testsuite/experimental/string_view/requirements/
892 explicit_instantiation/char16_t/1.cc: Likewise.
893 * testsuite/experimental/string_view/requirements/
894 explicit_instantiation/char32_t/1.cc: Likewise.
895 * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/
896 1.cc: Likewise.
897 * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/
898 1.cc: Likewise.
899
900 * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
901 (random_condition, throw_value_random, throw_allocator_random)
902 (std::hash<throw_value_random>): Do not define when <tr1/random> is
903 not usable.
904 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
905 define transactional memory support when <stdint.h> is not usable.
906
907 * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
908 implementation that doesn't depend on <stdint.h> types.
909 * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
910 std::size_t when std::uintptr_t is not usable.
911 [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable)
912 (undeclare_reachable, declare_no_pointers, undeclare_no_pointers):
913 Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
914
915 * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1]
916 (hash<u16string>, hash<u32string>): Remove dependency on
917 _GLIBCXX_USE_C99_STDINT_TR1.
918 * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1]
919 (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on
920 _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and
921 __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable.
922 * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1]
923 (codecvt<char16_t, char, mbstate_t>)
924 (codecvt<char32_t, char, mbstate_t>)
925 (codecvt_byname<char16_t, char, mbstate_t>)
926 (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency
927 on _GLIBCXX_USE_C99_STDINT_TR1.
928 * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1]
929 (_GLIBCXX_NUM_UNICODE_FACETS): Likewise.
930 * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
931 (char_traits<char16_t>, char_traits<char32_t>)
932 (basic_string<char16_t>, basic_string<char32_t>): Remove dependency
933 on _GLIBCXX_USE_C99_STDINT_TR1.
934 * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
935 (u16string_view, u32string_view, hash<u16string_view>)
936 (hash<u32string_view>, operator""sv(const char16_t, size_t))
937 (operator""sv(const char32_t, size_t)): Likewise.
938 * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1]
939 (hash<__u16vstring>, hash<__u32vstring>): Likewise.
940 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1]
941 (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring)
942 (__u32sso_string, __u32rc_string): Likewise.
943 * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode)
944 (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise.
945 * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1]
946 (u16string_view, u32string_view, hash<u16string_view>)
947 (hash<u32string_view>, operator""sv(const char16_t, size_t))
948 (operator""sv(const char32_t, size_t)): Likewise.
949 * src/c++11/codecvt.cc: Likewise.
950 * src/c++98/locale_init.cc: Likewise.
951 * src/c++98/localename.cc: Likewise.
952
953 * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1]
954 (__atomic_futex_unsigned_base): Remove dependency on
955 _GLIBCXX_USE_C99_STDINT_TR1 macro.
956 * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1]
957 (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1.
958 * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t)
959 (uintmax_t): Define using predefined macros.
960 * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration)
961 (time_point, system_clock, high_resolution_clock, steady_clock): Remove
962 dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro.
963 (nanoseconds, microseconds, milliseconds, seconds, minutes, hours):
964 [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or
965 long long when <stdint.h> is not usable.
966 * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1]
967 (condition_variable, condition_variable_any): Remove dependency on
968 _GLIBCXX_USE_C99_STDINT_TR1.
969 * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise)
970 (packaged_task, async): Likewise.
971 * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex)
972 (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock)
973 (once_flag, call_once): Likewise.
974 * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise.
975 * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1]
976 (shared_mutex, shared_timed_mutex, shared_lock): Likewise.
977 * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread)
978 (this_thread::get_id, this_thread::yield, this_thread::sleep_for)
979 (this_thread::sleep_until): Likewise.
980 * src/c++11/chrono.cc: Remove dependency on
981 _GLIBCXX_USE_C99_STDINT_TR1 macro.
982 * src/c++11/condition_variable.cc: Likewise.
983 * src/c++11/futex.cc: Likewise.
984 * src/c++11/future.cc: Likewise.
985 * src/c++11/mutex.cc: Likewise.
986 * src/c++11/thread.cc: Likewise.
987 * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error.
988 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
989 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
990 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
991 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
992 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
993
994 2018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
995
996 PR libstdc++/77691
997 * testsuite/experimental/memory_resource/new_delete_resource.cc:
998 xfail execution on 32-bit Solaris/x86.
999
1000 2018-07-26 Marc Glisse <marc.glisse@inria.fr>
1001
1002 * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New.
1003 (_Vector_impl_data::_M_swap_data): Use _M_copy_data.
1004 (vector::_M_move_assign): Reorder the swaps.
1005
1006 2018-07-26 Jonathan Wakely <jwakely@redhat.com>
1007
1008 PR libstdc++/86676
1009 * testsuite/20_util/monotonic_buffer_resource/release.cc: Request
1010 same alignment for post-release allocation.
1011
1012 2018-07-25 Jonathan Wakely <jwakely@redhat.com>
1013
1014 PR libstdc++/86676
1015 * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for
1016 buffer being misaligned and so returned pointer not being at start.
1017
1018 * include/experimental/memory_resource: Include <cstddef> header.
1019
1020 * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17.
1021 * src/Makefile.am: Add comment.
1022 * src/c++17/Makefile.in: Regenerate.
1023
1024 * include/Makefile.am: Add new <bits/unique_lock.h> header.
1025 * include/Makefile.in: Regenerate.
1026 * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex)
1027 (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1.
1028 (unique_lock): Move definition to ...
1029 * include/bits/unique_lock.h: New header.
1030 [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally.
1031 [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point))
1032 (unique_lock(mutex_type&, duration), unique_lock::try_lock_until)
1033 (unique_lock::try_lock_for): Define only when <chrono> is usable.
1034 * include/std/condition_variable: Include <bits/unique_lock.h>.
1035 * include/std/mutex: Likewise.
1036
1037 2018-07-24 Jonathan Wakely <jwakely@redhat.com>
1038
1039 * config/abi/pre/gnu.ver: Export new symbols.
1040 * configure: Regenerate.
1041 * include/Makefile.am: Add new <memory_resource> header.
1042 * include/Makefile.in: Regenerate.
1043 * include/precompiled/stdc++.h: Include <memory_resource> for C++17.
1044 * include/std/memory_resource: New header.
1045 (memory_resource, polymorphic_allocator, new_delete_resource)
1046 (null_memory_resource, set_default_resource, get_default_resource)
1047 (pool_options, monotonic_buffer_resource): Define.
1048 * src/Makefile.am: Add c++17 directory.
1049 * src/Makefile.in: Regenerate.
1050 * src/c++11/Makefile.am: Fix comment.
1051 * src/c++17/Makefile.am: Add makefile for new sub-directory.
1052 * src/c++17/Makefile.in: Generate.
1053 * src/c++17/memory_resource.cc: New.
1054 (newdel_res_t, null_res_t, constant_init, newdel_res, null_res)
1055 (default_res, new_delete_resource, null_memory_resource)
1056 (set_default_resource, get_default_resource): Define.
1057 * testsuite/20_util/memory_resource/1.cc: New test.
1058 * testsuite/20_util/memory_resource/2.cc: New test.
1059 * testsuite/20_util/monotonic_buffer_resource/1.cc: New test.
1060 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test.
1061 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test.
1062 * testsuite/20_util/monotonic_buffer_resource/release.cc: New test.
1063 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
1064 New test.
1065 * testsuite/20_util/polymorphic_allocator/1.cc: New test.
1066 * testsuite/20_util/polymorphic_allocator/resource.cc: New test.
1067 * testsuite/20_util/polymorphic_allocator/select.cc: New test.
1068 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
1069 Define concrete memory resource for testing.
1070 (__gnu_test::default_resource_mgr): Define RAII helper for changing
1071 default resource.
1072
1073 PR libstdc++/86658
1074 * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused
1075 parameter by reference, to avoid copying invalid iterators.
1076 * testsuite/25_algorithms/copy/86658.cc: New test.
1077
1078 * include/std/bit (__countl_zero, __countr_zero, __popcount): Use
1079 local variables for number of digits instead of type aliases.
1080 (__log2p1): Remove redundant branch also checked in __countl_zero.
1081
1082 * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder
1083 conditions. Add comments.
1084 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line.
1085 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
1086 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
1087
1088 * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove.
1089 (__uses_allocator_helper): Check conditions directly instead of
1090 using __is_erased_or_convertible.
1091
1092 * include/experimental/memory_resource: Adjust comments and
1093 whitespace.
1094 (__resource_adaptor_imp): Add second template parameter for type of
1095 memory resource base class.
1096 (memory_resource): Define default constructor, destructor, copy
1097 constructor and copy assignment operator as defaulted.
1098
1099 PR libstdc++/70966
1100 * include/experimental/memory_resource (__get_default_resource): Use
1101 placement new to create an object with dynamic storage duration.
1102
1103 2018-07-23 Jonathan Wakely <jwakely@redhat.com>
1104
1105 PR libstdc++/70940
1106 * include/experimental/memory_resource
1107 (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion.
1108 (__resource_adaptor_common::__guaranteed_alignment): New helper to
1109 give maximum alignment an allocator guarantees. Specialize for known
1110 allocators using new and malloc.
1111 (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment.
1112 (__resource_adaptor_imp::do_deallocate): Likewise.
1113 * testsuite/experimental/memory_resource/new_delete_resource.cc:
1114 Check that new and delete are called with expected sizes.
1115
1116 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
1117
1118 PR libstdc++/86595
1119 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
1120 noexcept.
1121
1122 2018-07-20 Fangrui Song <maskray@google.com>
1123
1124 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
1125 _GLIBCXX_VISIBILITY(default).
1126
1127 2018-07-20 Jonathan Wakely <jwakely@redhat.com>
1128
1129 PR libstdc++/86603
1130 * include/std/version: Move __cpp_lib_list_remove_return_type macro.
1131
1132 2018-07-19 Jonathan Wakely <jwakely@redhat.com>
1133
1134 * include/std/type_traits (__is_member_object_pointer_helper): Use
1135 __not_<is_function<_Tp>>::type instead of integral_constant.
1136 (__is_member_function_pointer_helper): Likewise for
1137 is_function<_Tp>::type.
1138 (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type.
1139 (__do_is_nt_destructible_impl): Use __bool_constant and reindent.
1140 (is_trivially_constructible): Remove redundant use of
1141 is_constructible.
1142 (__is_trivially_copy_assignable_impl): Remove redundant use of
1143 is_copy_assignable.
1144 (__is_trivially_move_assignable_impl): Remove redundant use of
1145 is_move_assignable.
1146 (is_trivially_destructible): Use __bool_constant.
1147 * testsuite/20_util/is_trivially_assignable/value.cc: Add some more
1148 tests for scalar types.
1149
1150 2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com>
1151
1152 * include/bits/stl_algobase.h (__copy_move_a): Used
1153 __is_trivially_copyable.
1154 (__copy_move_backward_a): Likewise.
1155 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1156 New test.
1157
1158 2018-07-17 Jonathan Wakely <jwakely@redhat.com>
1159
1160 PR libstdc++/86450
1161 * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR.
1162 (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi.
1163 * configure: Regenerate.
1164 * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no".
1165 * doc/Makefile.in: Regenerate.
1166 * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR).
1167 * include/Makefile.in: Regenerate.
1168 * libsupc++/Makefile.in: Regenerate.
1169 * po/Makefile.in: Regenerate.
1170 * python/Makefile.in: Regenerate.
1171 * src/Makefile.in: Regenerate.
1172 * src/c++11/Makefile.in: Regenerate.
1173 * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings
1174 from -Wabi=2 that don't affect exported symbols.
1175 * src/c++98/Makefile.in: Regenerate.
1176 * src/filesystem/Makefile.in: Regenerate.
1177 * testsuite/Makefile.in: Regenerate.
1178
1179 * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED]
1180 (_Async_state_common::_M_join): Simplify use of std::call_once and
1181 corresponding explicit instantiation.
1182 (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper)
1183 (__bind_simple): Remove definitions and explicit instantiation that
1184 are not required by exported symbols.
1185
1186 2018-07-16 Jonathan Wakely <jwakely@redhat.com>
1187
1188 * scripts/create_testsuite_files: Fix typo in comment.
1189
1190 PR libstdc++/86537
1191 * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove
1192 non-standard partial specialization.
1193 * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition.
1194 (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization.
1195 * testsuite/20_util/shared_ptr/comparison/86537.cc: New test.
1196
1197 2018-07-16 Andreas Krebbel <krebbel@linux.ibm.com>
1198
1199 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update.
1200 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.
1201 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1202
1203 2018-07-06 François Dumont <fdumont@gcc.gnu.org>
1204
1205 * include/debug/functions.h (__gnu_debug::__check_string): Move...
1206 * include/debug/string (__gnu_debug::__check_string): ... here.
1207 (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New.
1208 (__glibcxx_check_string_n_constructor): New.
1209 (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)):
1210 Use latter.
1211 (__glibcxx_check_string_constructor): New.
1212 (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)):
1213 Use latter.
1214 * testsuite/21_strings/basic_string/debug/1_neg.cc: New.
1215 * testsuite/21_strings/basic_string/debug/2_neg.cc: New.
1216
1217 2018-07-06 Jonathan Wakely <jwakely@redhat.com>
1218
1219 PR libstdc++/84928 use std::move in <numeric> algorithms
1220 * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to
1221 conditionally move, according to __cplusplus value.
1222 (accumulate, inner_product, partial_sum, adjacent_difference): Use
1223 _GLIBCXX_MOVE_IF_20.
1224 * testsuite/26_numerics/accumulate/lwg2055.cc: New test.
1225 * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test.
1226 * testsuite/26_numerics/inner_product/lwg2055.cc: New test.
1227 * testsuite/26_numerics/partial_sum/lwg2055.cc: New test.
1228
1229 * config/abi/pre/gnu.ver: Use wildcards to combine related patterns.
1230
1231 P0935R0 Eradicating unnecessarily explicit default constructors
1232 * config/abi/pre/gnu.ver: Tighten existing patterns and export new
1233 default constructor symbols.
1234 * include/std/sstream (basic_stringbuf, basic_istringstream)
1235 (basic_ostringstream, basic_stringstream): Remove default arguments
1236 from explicit constructors taking ios_base::openmode and add separate
1237 non-explicit default constructors.
1238 * testsuite/27_io/basic_istringstream/cons/default.cc: New.
1239 * testsuite/27_io/basic_ostringstream/cons/default.cc: New.
1240 * testsuite/27_io/basic_stringstream/cons/default.cc: New.
1241 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New.
1242 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New.
1243
1244 * include/std/variant (__accepted_index): Use void_t.
1245
1246 2018-07-05 Jonathan Wakely <jwakely@redhat.com>
1247
1248 PR libstdc++/85831
1249 * config/abi/pre/gnu.ver: Export move constructors and move
1250 assignment operators for std::logic_error and std::runtime_error.
1251 * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
1252 _GLIBCXX_USE_NOEXCEPT.
1253 (logic_error, runtime_error): Declare move constructors and move
1254 assignment operators. When not declared already, define copy
1255 constructors and copy assignment operators as explicit-defaulted.
1256 (domain_error, invalid_argument, length_error, out_of_range)
1257 (overflow_error, underflow_error): Define move constructors and move
1258 assignment operators as explicitly-defaulted.
1259 * libsupc++/exception.h (exception): Likewise.
1260 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
1261 move constructors and move assignment operators as defaulted.
1262 * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
1263 assignment operators are defined.
1264
1265 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for
1266 COW strings.
1267 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1268 Likewise.
1269 * testsuite/21_strings/basic_string/requirements/
1270 explicit_instantiation/debug.cc: Likewise.
1271
1272 PR libstdc++/58265
1273 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1274 (basic_string::assign(basic_string&&)): Add conditional noexcept
1275 depending on the allocator's is_always_equal property (LWG 2063).
1276 * testsuite/21_strings/basic_string/modifiers/assign/char/
1277 move_assign.cc: Check for non-throwing exception specification.
1278 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
1279 move_assign.cc: Likewise.
1280
1281 PR libstdc++/58265
1282 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1283 [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()):
1284 Add GLIBCXX_NOEXCEPT.
1285 (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF
1286 to depend on the allocator's is_always_equal property (LWG 2063).
1287 (basic_string::swap(basic_string&)): Likewise.
1288 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]
1289 (basic_string::swap(basic_string&)): Likewise.
1290 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1291 Check is_nothrow_move_assignable.
1292 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1293 Check is_nothrow_move_assignable.
1294 * testsuite/21_strings/basic_string/cons/char/
1295 noexcept_move_construct.cc: Likewise.
1296 * testsuite/21_strings/basic_string/cons/wchar_t/
1297 noexcept_move_construct.cc: Likewise.
1298
1299 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1300
1301 P0646R1 Improving the Return Value of Erase-Like Algorithms I
1302 * include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
1303 Define.
1304 (forward_list::__remove_return_type): Define typedef as size_type or
1305 void, according to __cplusplus value.
1306 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1307 empty, according to __cplusplus value.
1308 (forward_list::remove, forward_list::unique): Use typedef and macro
1309 to change return type and add abi-tag for C++2a.
1310 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
1311 typedef to change return type for C++2a.
1312 * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
1313 (forward_list::remove, forward_list::remove_if<Pred>)
1314 (forward_list::unique<BinPred>): Return number of removed elements
1315 for C++2a.
1316 * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
1317 (list::remove, list::unique, list::remove_if<Predicate>)
1318 (list::unique<BinaryPredicate>): Return number of removed elements
1319 for C++2a.
1320 * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
1321 (list::__remove_return_type): Define typedef as size_type or
1322 void, according to __cplusplus value.
1323 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
1324 empty, according to __cplusplus value.
1325 (list::remove, list::unique): Use typedef and macro to change return
1326 type and add abi-tag for C++2a.
1327 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
1328 typedef to change return type for C++2a.
1329 * include/std/version (__cpp_lib_list_remove_return_type): Define.
1330 * testsuite/23_containers/forward_list/operations/
1331 remove_cxx20_return.cc: New.
1332 * testsuite/23_containers/forward_list/operations/
1333 unique_cxx20_return.cc: New.
1334
1335 P0458R2 Checking for Existence of an Element in Associative Containers
1336 * include/bits/stl_map.h (map::contains): Add for C++2a.
1337 * include/bits/stl_multimap.h (multimap::contains): Likewise.
1338 * include/bits/stl_multiset.h (multiset::contains): Likewise.
1339 * include/bits/stl_set.h (set::contains): Likewise.
1340 * include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
1341 (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
1342 (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
1343 (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
1344 * include/bits/unordered_map.h (unordered_map::contains)
1345 (unordered_multimap::contains): Add for C++2a.
1346 * include/bits/unordered_set.h (unordered_set::contains)
1347 (unordered_multiset::contains): Likewise.
1348 * testsuite/23_containers/map/operations/contains.cc: New.
1349 * testsuite/23_containers/multimap/operations/contains.cc: New.
1350 * testsuite/23_containers/multiset/operations/contains.cc: New.
1351 * testsuite/23_containers/set/operations/contains.cc: New.
1352 * testsuite/23_containers/unordered_map/operations/contains.cc: New.
1353 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
1354 New.
1355 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
1356 New.
1357 * testsuite/23_containers/unordered_set/operations/contains.cc: New.
1358
1359 2018-07-04 François Dumont <fdumont@gcc.gnu.org>
1360
1361 PR libstdc++/86272
1362 * include/debug/string
1363 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
1364 Use __glibcxx_check_insert_range.
1365 * 21_strings/basic_string/cons/char/1.cc: Adapt test to use
1366 __gnu_debug::string when _GLIBCXX_DEBUG.
1367 * 21_strings/basic_string/init-list.cc: Likewise.
1368 * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
1369 * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
1370 * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
1371 * 21_strings/basic_string/types/1.cc: Likewise.
1372
1373 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1374
1375 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective
1376 target for std::random_device.
1377 * testsuite/26_numerics/random/random_device/cons/default.cc:
1378 Likewise.
1379 * testsuite/experimental/algorithm/sample-2.cc: Likewise.
1380 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1381 * testsuite/experimental/random/randint.cc: Likewise.
1382 * testsuite/lib/libstdc++.exp
1383 (check_effective_target_random_device): New proc.
1384
1385 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1386 Jakub Jelinek <jakub@redhat.com>
1387
1388 * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
1389
1390 2018-07-04 Jonathan Wakely <jwakely@redhat.com>
1391
1392 PR libstdc++/86398
1393 * include/std/type_traits (is_trivially_constructible): Check
1394 is_constructible before __is_trivially_constructible.
1395 * testsuite/20_util/is_trivially_constructible/value.cc: Add more
1396 tests, including negative cases.
1397 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
1398 zero for dg-error lineno.
1399 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1400 Likewise.
1401
1402 * include/std/bit (__rotl, __rotr): Avoid branch.
1403 (_If_is_unsigned_integer): Use remove_cv_t.
1404 * testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
1405
1406 2018-07-03 Jonathan Wakely <jwakely@redhat.com>
1407
1408 P0556R3 Integral power-of-2 operations, P0553R2 Bit operations
1409 * include/Makefile.am: Add new header.
1410 * include/Makefile.in: Regenerate.
1411 * include/precompiled/stdc++.h: Include new header.
1412 * include/std/bit: New header.
1413 (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
1414 (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
1415 Define for C++14.
1416 [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
1417 (countr_one, popcount): Define for C++2a. Also overload for std::byte.
1418 (ispow2, ceil2, floor2, log2p1): Define for C++2a.
1419 [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
1420 std::byte.
1421 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
1422 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
1423 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
1424 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
1425 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
1426 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
1427 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
1428 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
1429 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
1430 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
1431
1432 * include/bits/alloc_traits.h: Remove redundant preprocessor
1433 condition.
1434
1435 2018-07-03 François Dumont <fdumont@gcc.gnu.org>
1436
1437 * include/bits/stl_algobase.h (__niter_wrap): New.
1438 (__copy_move_a2(_II, _II, _OI)): Use latter.
1439 (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise.
1440 (fill_n(_OI, _Size, const _Tp&)): Likewise.
1441 (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment.
1442 * include/debug/stl_iterator.h
1443 (std::__niter_base(const __gnu_cxx::_Safe_iterator<
1444 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration.
1445 * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator<
1446 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New.
1447
1448 2018-07-02 Jonathan Wakely <jwakely@redhat.com>
1449
1450 P0758R1 Implicit conversion traits
1451 * include/std/type_traits [__cplusplus > 201703]
1452 (__is_convertible_helper::__is_nothrow_type): Define new member.
1453 (__is_convertible_helper<_From, _To, false>::__test_aux1): Add
1454 noexcept.
1455 (__is_convertible_helper<_From, _To, false>::__test_nothrow)
1456 (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add
1457 new members.
1458 (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a.
1459 * testsuite/20_util/is_nothrow_convertible/value.cc: New.
1460 * testsuite/20_util/is_nothrow_convertible/requirements/
1461 explicit_instantiation.cc: New.
1462 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1463 New.
1464
1465 P0887R1 The identity metafunction
1466 * include/std/type_traits (type_identity, type_identity_t): Define
1467 for C++2a.
1468 * testsuite/20_util/type_identity/requirements/alias_decl.cc: New.
1469 * testsuite/20_util/type_identity/requirements/
1470 explicit_instantiation.cc:New.
1471 * testsuite/20_util/type_identity/requirements/typedefs.cc: New.
1472
1473 * include/bits/regex.h (sub_match::operator string_type): Call str().
1474 (sub_match::compare): Use _M_str() instead of str().
1475 (sub_match::_M_compare): New public function.
1476 (sub_match::__string_view): New helper type.
1477 (sub_match::_M_str): New overloaded functions to avoid creating a
1478 string_type object when not needed.
1479 (operator==, operator!=, operator<, operator>, operator<=, operator>=):
1480 Use sub_match::_M_compare instead of creating string_type objects.
1481 Fix Doxygen comments.
1482 * include/bits/regex_compiler.h (__has_contiguous_iter): Remove.
1483 (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and
1484 simplify.
1485 (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use
1486 __enable_if_t.
1487 * include/std/type_traits (__enable_if_t): Define for C++11.
1488 * testsuite/28_regex/sub_match/compare.cc: New.
1489 * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation
1490 trait.
1491 (input_iterator_wrapper): Use remove_cv for value_type argument of
1492 std::iterator base class.
1493
1494 2018-06-29 Jonathan Wakely <jwakely@redhat.com>
1495
1496 * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
1497 Add whitespace to dejagnu directive.
1498 * testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
1499
1500 2018-06-27 François Dumont <fdumont@gcc.gnu.org>
1501
1502 * include/bits/stl_vector.h
1503 (struct _Vector_base<>::_Vector_impl_data): New.
1504 (struct _Vector_base<>::_Vector_impl): Inherit from latter.
1505 (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
1506 (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
1507 (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
1508 (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
1509 (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
1510 (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
1511 (_Vector_base()): Default.
1512 (_Vector_base(_Vector_base&&)): Default.
1513 (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
1514 (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
1515 (_Vector_base::_M_create_storage(size_t)): Make protected.
1516 (vector()): Default.
1517 (vector(vector&&)): Default.
1518 (vector(vector&&, const allocator_type&, true_type)): New.
1519 (vector(vector&&, const allocator_type&, false_type)): New.
1520 (vector(vector&&, const allocator_type&)): Use latters.
1521 (vector(_InputIte, _InputIte, const allocator_type&)): Call
1522 _M_range_initialize directly.
1523 * include/debug/vector
1524 (vector(vector&&, const allocator_type&)): Add noexcept qualification.
1525 * testsuite/23_containers/vector/allocator/default_init.cc: New.
1526 * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
1527 static assertions.
1528
1529 2018-06-27 Jonathan Wakely <jwakely@redhat.com>
1530
1531 * include/bits/cpp_type_traits.h [__cplusplus >= 201703]
1532 (__is_byte<byte>): Define specialization for std::byte.
1533
1534 PR libstdc++/86138
1535 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
1536 Declare explicit instantiations of COW empty reps and I/O functions.
1537
1538 2018-06-26 David Edelsohn <dje.gcc@gmail.com>
1539
1540 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
1541 directives.
1542 * testsuite/experimental/algorithm/shuffle.cc: Likewise.
1543
1544 2018-06-26 Jonathan Wakely <jwakely@redhat.com>
1545
1546 * include/bits/regex.tcc (regex_iterator::operator==): Add missing
1547 noexcept.
1548
1549 2018-06-25 Jonathan Wakely <jwakely@redhat.com>
1550
1551 PR libstdc++/86112
1552 * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
1553 Replace dict comprehension.
1554
1555 PR libstdc++/81092
1556 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1557
1558 PR libstdc++/86292
1559 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
1560 Add try-catch block.
1561 * testsuite/23_containers/vector/cons/86292.cc: New.
1562
1563 * doc/xml/manual/status_cxx2017.xml: Document N4531 status.
1564
1565 * include/experimental/algorithm (sample, shuffle): Add new overloads
1566 using per-thread random number engine.
1567 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce
1568 dependencies by using __gnu_test::test_container.
1569 * testsuite/experimental/algorithm/sample-2.cc: New.
1570 * testsuite/experimental/algorithm/shuffle.cc: New.
1571
1572 2018-06-22 Jonathan Wakely <jwakely@redhat.com>
1573
1574 * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
1575 different size_t mangling on 32-bit targets.
1576
1577 PR libstdc++/86280
1578 * include/experimental/memory_resource
1579 (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
1580 enough for result of left shift.
1581
1582 PR libstdc++/86138
1583 * include/bits/basic_string.tcc:
1584 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
1585 (basic_string<char>::_Rep::_S_empty_rep_storage)
1586 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
1587 instantiation declarations.
1588 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
1589 explicit instantiation declarations.
1590 * testsuite/21_strings/basic_string/cons/char/86138.cc: New.
1591 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
1592
1593 2018-06-21 Jonathan Wakely <jwakely@redhat.com>
1594
1595 PR libstdc++/83328
1596 * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
1597 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
1598 * configure: Regenerate.
1599 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1600 (basic_string::insert(const_iterator, initializer_list<C>)): Add.
1601 [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1602 (basic_string::insert(iterator, initializer_list<C>)): Suppress
1603 definition.
1604 * include/debug/string (basic_string::insert(iterator, C)): Change
1605 first parameter to const_iterator.
1606 (basic_string::insert(iterator, size_type, C)): Likewise. Change
1607 return type to iterator.
1608 (basic_string::insert(iterator, InputIterator, InputIterator)):
1609 Likewise.
1610 (basic_string::insert(iterator, initializer_list<C>)): Change first
1611 parameter to const_iterator and return type to iterator.
1612 * src/c++11/string-inst.cc: Extend comment.
1613 * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
1614 New.
1615 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
1616 New.
1617 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1618
1619 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1620
1621 PR libstdc++/70940
1622 * include/experimental/memory_resource
1623 (__resource_adaptor_imp::do_deallocate): Add missing return.
1624 * testsuite/experimental/memory_resource/new_delete_resource.cc: New.
1625 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1626 resource_adaptor with std::allocator, __gnu_cxx::new_allocator and
1627 __gnu_cxx::malloc_allocator.
1628
1629 PR libstdc++/70940
1630 * include/experimental/memory_resource (__resource_adaptor_common):
1631 New base class.
1632 (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
1633 pointer from unaligned, and vice versa.
1634 (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
1635 allocated pointer to meet alignment request.
1636 (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
1637 original pointer for deallocation.
1638 (__resource_adaptor_imp::do_is_equal): Reformat.
1639 (__resource_adaptor_imp::_S_aligned_size): Remove.
1640 (__resource_adaptor_imp::_S_supported): Remove.
1641 (new_delete_resource): Use __gnu_cxx::new_allocator.
1642 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test
1643 extended alignments and use debug_allocator to check for matching
1644 allocate/deallocate pairs.
1645
1646 2018-06-21 François Dumont <fdumont@gcc.gnu.org>
1647
1648 * include/debug/safe_iterator.h
1649 (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)):
1650 Compare __x base iterator with a value-initialized iterator of the
1651 same type.
1652
1653 2018-06-20 Jonathan Wakely <jwakely@redhat.com>
1654
1655 PR libstdc++/70966
1656 * include/experimental/memory_resource (__resource_adaptor_imp): Add
1657 static assertions to enforce requirements on pointer types.
1658 (__resource_adaptor_imp::get_allocator()): Add noexcept.
1659 (new_delete_resource, null_memory_resource): Return address of an
1660 object with dynamic storage duration.
1661 (__null_memory_resource): Remove.
1662 * testsuite/experimental/memory_resource/70966.cc: New.
1663
1664 * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test
1665 missed from recent commit.
1666
1667 2018-06-19 Jonathan Wakely <jwakely@redhat.com>
1668
1669 * include/std/utility: Remove unused <exception> header.
1670
1671 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
1672
1673 LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs
1674 * include/std/scoped_allocator (__not_pair): Define SFINAE helper.
1675 (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
1676 a specialization of std::pair.
1677 * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
1678 pair elements are constructed correctly.
1679
1680 LWG 2989 hide path iostream operators from normal lookup
1681 * include/bits/fs_path.h (operator<<, operator>>): Define inline as
1682 friends.
1683 * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
1684
1685 LWG 3050 Fix cv-qualification of convertibility constraints
1686 * include/std/chrono (duration, operator*, operator/, operator%): Use
1687 const-qualified type as source type in is_convertible constraints.
1688 * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
1689 * testsuite/20_util/duration/cons/dr3050.cc: New.
1690 * testsuite/20_util/duration/literals/range.cc: Rename to...
1691 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
1692 dg-error lineno.
1693
1694 2018-06-18 Maya Rashish <coypu@sdf.org>
1695
1696 * crossconfig.m4: Handle OpenBSD just like NetBSD.
1697 * configure: Rebuilt.
1698
1699 2018-06-18 Jonathan Wakely <jwakely@redhat.com>
1700
1701 P0754R2 <version> header
1702 * include/Makefile.am: Add new header.
1703 * include/Makefile.in: Regenerate.
1704 * include/bits/c++config: Change doxygen comment to suggest <version>
1705 instead of <iosfwd>.
1706 * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
1707 unconditionally. Add C++17 and C++20 headers.
1708 * include/std/version: New header.
1709 * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
1710 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
1711 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
1712 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
1713 * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
1714 * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
1715 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1716 New.
1717 * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
1718 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
1719 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
1720 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
1721 * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
1722 * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
1723 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
1724 New.
1725 * testsuite/18_support/headers/version/macros.cc: New.
1726 * testsuite/18_support/headers/version/macros.cc: New.
1727
1728 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
1729 enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
1730 symlink.
1731 * config.h.in: Regenerate.
1732 * configure: Regenerate.
1733 * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
1734
1735 LWG 3035. std::allocator's constructors should be constexpr
1736 * include/bits/allocator.h (allocator): Add constexpr to constructors
1737 for C++2a. Replace dynamic exception specifications with NOTHROW
1738 macro.
1739 (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
1740 NOTHROW.
1741 * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
1742 * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
1743 to constructors for C++2a.
1744 * include/ext/new_allocator.h (new_allocator): Likewise.
1745
1746 2018-06-16 Jonathan Wakely <jwakely@redhat.com>
1747
1748 LWG 3076 basic_string CTAD ambiguity
1749 * doc/xml/manual/intro.xml: Document LWG 3076 change.
1750 * include/bits/basic_string.h
1751 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
1752 (basic_string(const _CharT*, const _Alloc&)): Turn into a function
1753 template constrained by _RequireAllocator.
1754 (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
1755 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
1756 Define.
1757 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1758 deduction
1759 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1760 Likewise.
1761
1762 2018-06-15 Jonathan Wakely <jwakely@redhat.com>
1763
1764 PR libstdc++/86169
1765 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1766 (basic_string::data()): Unshare string.
1767 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1768 New.
1769
1770 * include/std/string_view (basic_string_view(const CharT*)): Remove
1771 check for null pointer and add nonnull attribute.
1772 (compare(const CharT*), compare(size_type, size_type, const CharT*))
1773 (find(const CharT*, size_type), rfind(const CharT*, size_type))
1774 (find_first_of(const CharT*, size_type))
1775 (find_last_of(const CharT*, size_type))
1776 (find_first_not_of(const CharT*, size_type))
1777 (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
1778 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
1779 * testsuite/21_strings/basic_string_view/operations/compare/char/
1780 nonnull.cc: New.
1781 * testsuite/21_strings/basic_string_view/operations/find/char/
1782 nonnull.cc: New.
1783 * testsuite/21_strings/basic_string_view/operations/rfind/char/
1784 nonnull.cc: New.
1785
1786 PR libstdc++/86168
1787 * include/bits/random.h (random_device(const string&)): Remove
1788 default argument.
1789
1790 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
1791 define for C++17 and above.
1792
1793 LWG 2993 reference_wrapper<T> conversion from T&&
1794 * doc/xml/manual/intro.xml: Document LWG 2993 change.
1795 * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
1796 (reference_wrapper(_Tp&&)): Remove.
1797 (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
1798 template.
1799 (reference_wrapper): Add deduction guide.
1800 * testsuite/20_util/reference_wrapper/deduction.cc: New.
1801 * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
1802
1803 LWG 3039 Unnecessary decay in thread and packaged_task
1804 * include/std/future (__constrain_pkgdtask): Replace with ...
1805 (packaged_task::__not_same): New alias template, using
1806 __remove_cvref_t instead of decay.
1807 * include/std/thread (thread::__not_same): Add comment.
1808
1809 2018-06-14 Jonathan Wakely <jwakely@redhat.com>
1810
1811 LWG 3075 basic_string needs deduction guides from basic_string_view
1812 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
1813 deduction from string views.
1814 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1815 Likewise.
1816
1817 LWG 3074 make scalar types non-deduced in valarray non-member functions
1818 * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
1819 scalar parameters to be a non-deduced context.
1820 * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
1821 whitespace.
1822 * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
1823 * testsuite/26_numerics/valarray/transcend.cc: New.
1824
1825 * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
1826 Move back to <utility>.
1827 * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
1828 Restore to here.
1829
1830 P0935R0 Eradicating unnecessarily explicit default constructors
1831 * include/backward/strstream (strstreambuf): Add non-explicit default
1832 constructor.
1833 * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
1834 Likewise.
1835 * include/bits/regex.h (match_results): Likewise.
1836 * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
1837 default constructor.
1838 * testsuite/22_locale/conversions/string/1.cc: Likewise.
1839 * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
1840 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
1841
1842 * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
1843 macro from <utility> and change type to long.
1844 * include/std/utility (__cpp_lib_tuple_element_t): Remove.
1845 * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
1846 macro.
1847
1848 P0935R0 Eradicating unnecessarily explicit default constructors
1849 * include/bits/random.h (uniform_real_distribution::param_type)
1850 (normal_distribution::param_type, lognormal_distribution::param_type)
1851 (gamma_distribution::param_type, chi_squared_distribution::param_type)
1852 (cauchy_distribution::param_type, fisher_f_distribution::param_type)
1853 (student_t_distribution::param_type)
1854 (bernoulli_distribution::param_type)
1855 (binomial_distribution::param_type)
1856 (geometric_distribution::param_type)
1857 (negative_binomial_distribution::param_type)
1858 (poisson_distribution::param_type)
1859 (exponential_distribution::param_type)
1860 (weibull_distribution::param_type)
1861 (extreme_value_distribution::param_type): Add non-explicit default
1862 constructors. Remove default argument for first parameter of explicit
1863 constructors.
1864 * include/bits/uniform_int_dist.h
1865 (uniform_int_distribution::param_type): Likewise.
1866 * include/ext/random
1867 (beta_distribution::param_type, rice_distribution::param_type)
1868 (nakagami_distribution::param_type, pareto_distribution::param_type)
1869 (k_distribution::param_type, arcsine_distribution::param_type)
1870 (hoyt_distribution::param_type, triangular_distribution::param_type)
1871 (von_mises_distribution::param_type)
1872 (hypergeometric_distribution::param_type)
1873 (logistic_distribution::param_type)
1874 (uniform_inside_sphere_distribution::param_type): Likewise.
1875 (uniform_on_sphere_distribution::param_type): Make default constructor
1876 non-explicit.
1877 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
1878 Test param_type for non-explicit default constructor.
1879 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
1880 Likewise.
1881 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
1882 Likewise.
1883 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
1884 Likewise.
1885 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
1886 Likewise.
1887 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
1888 Likewise.
1889 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
1890 Likewise.
1891 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
1892 Likewise.
1893 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
1894 Likewise.
1895 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
1896 Likewise.
1897 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
1898 Likewise.
1899 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
1900 Likewise.
1901 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
1902 Likewise.
1903 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
1904 Likewise.
1905 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
1906 Likewise.
1907 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
1908 Likewise.
1909 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
1910 Likewise.
1911 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
1912 Likewise.
1913 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
1914 Likewise.
1915 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
1916 Likewise.
1917 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
1918 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
1919 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
1920 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
1921 Likewise.
1922 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
1923 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
1924 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
1925 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
1926 Likewise.
1927 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
1928 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
1929 * testsuite/ext/random/triangular_distribution/cons/default.cc:
1930 Likewise.
1931 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
1932 Likewise.
1933 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
1934 Likewise.
1935 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
1936 Likewise.
1937
1938 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
1939 Jonathan Wakely <jwakely@redhat.com>
1940
1941 PR libstdc++/83982
1942 * include/bits/vector.tcc (vector::_M_default_append(size_type)):
1943 Default-construct new elements before moving existing ones.
1944 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
1945 New.
1946
1947 2018-06-13 Jonathan Wakely <jwakely@redhat.com>
1948
1949 PR libstdc++/86127
1950 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
1951 unused typedef.
1952 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
1953 Use node allocator to create and destroy elements.
1954 (forward_list::_Tp_alloc_type): Remove unused typedef.
1955 (forward_list::_Alloc_traits): Use allocator_traits instead of
1956 __gnu_cxx::__alloc_traits.
1957
1958 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
1959
1960 * include/debug/helper_functions.h
1961 (__gnu_debug::_Safe_iterator<>): Add declaration.
1962 (__can_advance(_Ite, _Size)): New.
1963 (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
1964 * include/debug/functions.h
1965 (__gnu_debug::_Safe_iterator<>): Remove declaration.
1966 * include/debug/stl_iterator.h
1967 (__can_advance(const _Safe_iterator<>&)): New definition.
1968 * include/debug/stl_iterator.h
1969 (__can_advance(const std::reverse_iterator<>&, _Size)): New.
1970 (__can_advance(const std::move_iterator<>&, _Size)): New.
1971 * include/debug/macros.h (__glibcxx_check_can_increment): New.
1972 * include/debug/debug.h (__glibcxx_requires_can_increment): New.
1973 * include/bits/stl_algobase.h (fill_n): Use latter.
1974 * testsuite/25_algorithms/fill_n/2.cc: New.
1975 * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
1976 * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
1977 * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
1978 * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
1979
1980 * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
1981 (__glibcxx_requires_can_decrement_range): New.
1982
1983 2018-06-12 François Dumont <fdumont@gcc.gnu.org>
1984
1985 * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
1986 (__glibcxx_check_can_decrement_range): New.
1987 * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
1988 __glibcxx_requires_can_increment_range.
1989 (std::move(_II, _II, _OI)): Likewise.
1990 (std::copy_backward(_BI, _BI, _BI2)): Use
1991 __glibcxx_requires_can_decrement_range.
1992 (std::move_backward(_BI, _BI, _BI2)): Likewise.
1993 * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
1994 * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
1995 * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
1996 * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
1997 * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
1998 * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
1999
2000 2018-06-12 Jonathan Wakely <jwakely@redhat.com>
2001
2002 P0935R0 Eradicating unnecessarily explicit default constructors
2003 * include/bits/random.h (linear_congruential_engine)
2004 (mersenne_twister_engine, subtract_with_carry_engine, random_device)
2005 (uniform_real_distribution, normal_distribution)
2006 (lognormal_distribution, gamma_distribution, chi_squared_distribution)
2007 (cauchy_distribution, fisher_f_distribution, student_t_distribution)
2008 (bernoulli_distribution, binomial_distribution,geometric_distribution)
2009 (negative_binomial_distribution, exponential_distribution)
2010 (weibull_distribution, extreme_value_distribution): Add non-explicit
2011 default constructors. Remove default argument for first parameter of
2012 explicit constructors.
2013 (piecewise_constant_distribution, piecewise_linear_distribution):
2014 Make default constructor non-explicit.
2015 * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
2016 non-explicit default constructors. Remove default argument for first
2017 parameter of explicit constructor.
2018 * include/ext/random
2019 (simd_fast_mersenne_twister_engine, beta_distribution)
2020 (rice_distribution, nakagami_distribution, pareto_distribution)
2021 (k_distribution, arcsine_distribution, hoyt_distribution)
2022 (triangular_distribution, von_mises_distribution)
2023 (hypergeometric_distribution, logistic_distribution)
2024 (uniform_inside_sphere_distribution): Likewise.
2025 (uniform_on_sphere_distribution): Make default constructor
2026 non-explicit.
2027 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
2028 Test for non-explicit default constructor. Fix references to standard.
2029 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
2030 Likewise.
2031 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
2032 Likewise.
2033 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
2034 Likewise.
2035 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
2036 Likewise.
2037 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
2038 Likewise.
2039 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
2040 Likewise.
2041 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
2042 Likewise.
2043 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
2044 Likewise.
2045 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
2046 Likewise.
2047 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
2048 Likewise.
2049 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
2050 Likewise.
2051 * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
2052 Likewise.
2053 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
2054 Likewise.
2055 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
2056 Likewise.
2057 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
2058 Likewise.
2059 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
2060 Likewise.
2061 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
2062 Likewise.
2063 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
2064 Likewise.
2065 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
2066 Likewise.
2067 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
2068 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
2069 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
2070 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
2071 Likewise.
2072 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
2073 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
2074 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
2075 * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
2076 Likewise.
2077 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
2078 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
2079 * testsuite/ext/random/triangular_distribution/cons/default.cc:
2080 Likewise.
2081 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
2082 Likewise.
2083 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
2084 Likewise.
2085 * testsuite/ext/random/von_mises_distribution/cons/default.cc:
2086 Likewise.
2087 * testsuite/util/testsuite_common_types.h
2088 (implicitly_default_constructible): New helper.
2089
2090 2018-06-08 Jonathan Wakely <jwakely@redhat.com>
2091
2092 * include/bits/ios_base.h (ios::Init::Init(const Init&))
2093 (ios::Init::operator=): Define as defaulted.
2094 * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
2095 Likewise.
2096 * include/bits/stream_iterator.h (istream_iterator::operator=)
2097 (ostream_iterator::operator=): Likewise.
2098 * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
2099 Likewise.
2100 * include/std/bitset (bitset::reference::reference(const reference&)):
2101 Likewise.
2102 * include/std/complex (complex<float>::complex(const complex&))
2103 (complex<double>::complex(const complex&))
2104 (complex<long double>::complex(const complex&)): Likewise.
2105
2106 2018-06-07 Jonathan Wakely <jwakely@redhat.com>
2107
2108 * include/bits/regex.h (sub_match): Add noexcept to default
2109 constructor and length observer.
2110 (match_results): Add noexcept to default constructor and observers
2111 with no preconditions. Define destructor as defaulted.
2112 (operator==, operator!=, swap): Add noexcept.
2113 (regex_iterator): Add default member initializers and define default
2114 constructor and destructor as defaulted. Add noexcept to equality
2115 and dereference operators.
2116
2117 2018-06-07 François Dumont <fdumont@gcc.gnu.org>
2118
2119 * src/c++11/debug.cc
2120 (_Safe_iterator_base::_M_detach()): Reset state only if needed.
2121 (_Safe_iterator_base::_M_detach_single()): Likewise.
2122 (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
2123 (_Safe_local_iterator_base::_M_detach_single()): Likewise.
2124
2125 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
2126
2127 * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
2128 move of const value.
2129
2130 2018-06-06 Jakub Jelinek <jakub@redhat.com>
2131
2132 PR c++/86068
2133 * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
2134 rather than __cpp_transactional_memory >= 201505L.
2135
2136 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
2137
2138 PR libstdc++/86008
2139 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
2140 Define new partial specialization.
2141 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
2142 new overload.
2143 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
2144 value not reference for iteration.
2145 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
2146 comment.
2147 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
2148 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
2149 comment.
2150
2151 2018-06-05 Jonathan Wakely <jwakely@redhat.com>
2152
2153 * include/std/type_traits: Fix comment typos.
2154
2155 * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
2156 mingw* targets.
2157 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
2158 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2159 Likewise.
2160
2161 2018-06-05 François Dumont <fdumont@gcc.gnu.org>
2162
2163 * include/bits/stl_tempbuf.h
2164 (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
2165 (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
2166 * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
2167 * include/bits/stl_algo.h (__stable_partition): Adapt.
2168 (__inplace_merge): Adapt.
2169 (__stable_sort): Adapt.
2170
2171 2018-06-04 Jonathan Wakely <jwakely@redhat.com>
2172
2173 PR libstdc++/85930
2174 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
2175 unconditionally. Remove redundant declaration.
2176 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
2177 alignment-specifier.
2178
2179 * include/bits/postypes.h (fpos): Define special members as defaulted.
2180
2181 PR libstdc++/85930
2182 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
2183 the static variable correctly.
2184
2185 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
2186
2187 PR libstdc++/78870 support std::filesystem on Windows
2188 * config.h.in: Regenerate.
2189 * configure: Regenerate.
2190 * configure.ac: Check for link, readlink and symlink.
2191 * include/bits/fs_path.h (path::operator/=(const path&)): Move
2192 definition out of class body.
2193 (path::is_absolute(), path::_M_append(path)): Likewise.
2194 (operator<<(basic_ostream, const path&)): Use std::quoted directly.
2195 (operator>>(basic_istream, path&)): Likewise.
2196 (u8path): Reorder definitions and fix Windows implementation.
2197 (path::is_absolute()): Define inline and fix for Windows.
2198 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
2199 Define POSIX version inline.
2200 (path::_M_append(path)): Define inline.
2201 * include/experimental/bits/fs_path.h (path::is_absolute()): Move
2202 definition out of class body.
2203 (operator<<(basic_ostream, const path&)): Fix type of delimiter and
2204 escape characters.
2205 (operator>>(basic_istream, path&)): Likewise.
2206 (path::is_absolute()): Define inline and fix for Windows.
2207 * src/filesystem/dir-common.h (__gnu_posix): New namespace.
2208 (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
2209 (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
2210 Define as adaptors for Windows functions/types or as
2211 using-declarations for POSIX functions/types.
2212 (_Dir_base, get_file_type): Qualify names to use declarations from
2213 __gnu_posix namespace.
2214 (_Dir_base::is_dor_or_dotdot): New helper functions.
2215 * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
2216 names to use declarations from __gnu_posix namespace.
2217 * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
2218 (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
2219 (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
2220 (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
2221 (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
2222 (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
2223 Define as adaptors for Windows functions/types or as
2224 using-declarations for POSIX functions/types.
2225 (stat_type, do_copy_file): Qualify names to use declarations from
2226 __gnu_posix namespace.
2227 (do_space): Declare new function.
2228 (make_file_type): Only use S_ISLNK if defined.
2229 * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
2230 path::value_type not char.
2231 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
2232 names to use declarations from __gnu_posix namespace.
2233 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
2234 add implementation for Windows.
2235 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
2236 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
2237 [!_PC_PATH_MAX]: Don't use pathconf.
2238 [PATH_MAX]: Use if defined.
2239 (filesystem::current_path(const path&, error_code&))
2240 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
2241 (filesystem::last_write_time, filesystem::permissions): Use names
2242 from __gnu_posix.
2243 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
2244 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
2245 implementation for Windows.
2246 (filesystem::rename, filesystem::resize_file): Use names from
2247 __gnu_posix.
2248 (filesystem::space): Use do_space.
2249 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
2250 (filesystem::status, filesystem::symlink_status): Use names from
2251 __gnu_posix.
2252 (filesystem::temp_directory_path): Add implementation for Windows.
2253 * src/filesystem/path.cc (dot): Define constant.
2254 (path::replace_extension): Use dot.
2255 (path::_M_find_extension): Likewise. Use path::string_type not
2256 std::string.
2257 (path::_M_split_cmpts): Use dot.
2258 (filesystem_error::_M_get_what): Use u8string() not native().
2259 * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
2260 Qualify names to use declarations from __gnu_posix namespace.
2261 * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
2262 correct error_code.
2263 (filesystem::absolute(const path&, error_code&)): Add implementation
2264 for Windows.
2265 (char_ptr, filesystem::canonical): Use path::value_type not char.
2266 (do_copy_file): Use names from __gnu_posix.
2267 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
2268 sendfile.
2269 (filesystem::copy, create_dir, filesystem::create_directory): Qualify
2270 names to use declarations from __gnu_posix namespace.
2271 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
2272 add implementation for Windows.
2273 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
2274 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
2275 [!_PC_PATH_MAX]: Don't use pathconf.
2276 [PATH_MAX]: Use if defined.
2277 (filesystem::current_path(const path&, error_code&))
2278 (filesystem::equivalent, do_stat, filesystem::hard_link_count)
2279 (filesystem::last_write_time, filesystem::permissions): Use names
2280 from __gnu_posix.
2281 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
2282 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
2283 implementation for Windows.
2284 (filesystem::rename, filesystem::resize_file): Use names from
2285 __gnu_posix.
2286 (do_space): Define.
2287 (filesystem::space): Use do_space.
2288 (filesystem::status, filesystem::symlink_status): Use names from
2289 __gnu_posix.
2290 (filesystem::temp_directory_path): Add implementation for Windows.
2291 * src/filesystem/std-path.cc
2292 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
2293 Define for Windows.
2294 (dot): Define constant.
2295 (path::replace_extension, is_dot): Use dot.
2296 (path::lexically_normal): Check _M_type instead of calling
2297 non-existent function.
2298 (path::_M_find_extension): Use dot. Use path::string_type not
2299 std::string.
2300 (path::_M_split_cmpts): Use dot.
2301 (filesystem_error::_M_get_what): Use u8string() not native().
2302 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
2303 use symlinks.
2304 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2305 Likewise.
2306 * testsuite/27_io/filesystem/operations/absolute.cc: Use
2307 __gnu_test::root_path() instead of "/" and add Windows-specific tests.
2308 * testsuite/27_io/filesystem/operations/canonical.cc: Use
2309 path::string() to get narrow string, not path::native().
2310 * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
2311 with std::filesystem::path not std::basic_string.
2312 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2313 * testsuite/27_io/filesystem/operations/exists.cc: Use
2314 __gnu_test::root_path() instead of "/".
2315 * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
2316 fstreams with std::filesystem::path not std::basic_string.
2317 * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
2318 path::string() to get narrow string.
2319 * testsuite/27_io/filesystem/operations/space.cc: Check results for
2320 errors, expect sensible values otherwise.
2321 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
2322 helpers for adjusting the environment on Windows.
2323 * testsuite/27_io/filesystem/path/append/path.cc: Test
2324 Windows-specific behaviour.
2325 * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
2326 of path::string_type objects.
2327 * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
2328 string to wide string on Windows.
2329 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
2330 for backslash as root-directory.
2331 * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
2332 path::string() to get narrow string.
2333 * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
2334 paths.
2335 * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
2336 not std::string.
2337 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
2338 different definintion of absolute paths on Windows.
2339 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2340 Do not use symlinks.
2341 * testsuite/experimental/filesystem/operations/absolute.cc: Test
2342 Windows behaviour.
2343 * testsuite/experimental/filesystem/operations/copy.cc: Construct
2344 fstreams with NTCTS not std::basic_string.
2345 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
2346 * testsuite/experimental/filesystem/operations/exists.cc: Use
2347 __gnu_test::root_path() instead of "/".
2348 * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
2349 fstreams with NTCTS not std::basic_string.
2350 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2351 Use path::string() to get narrow string.
2352 * testsuite/experimental/filesystem/operations/space.cc: Use
2353 __gnu_test::root_path() instead of "/".
2354 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2355 Add helpers for adjusting the environment on Windows.
2356 * testsuite/experimental/filesystem/path/append/path.cc: Use
2357 path::string() to get narrow strings for comparisons.
2358 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
2359 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
2360 Likewise.
2361 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
2362 * testsuite/experimental/filesystem/path/native/string.cc: Use
2363 string_type not std::string.
2364 * testsuite/experimental/filesystem/path/query/is_absolute.cc:
2365 Adjust for different definintion of absolute paths on Windows.
2366 * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
2367 function.
2368 (__gnu_test::scoped_file): Construct fstreams with NTCTS not
2369 std::basic_string.
2370
2371 2018-05-31 Jonathan Wakely <jwakely@redhat.com>
2372
2373 PR libstdc++/85951
2374 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
2375 uint_least16_t and uint_least32_t.
2376 (__make_unsigned<wchar_t>): Define unconditionally.
2377 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
2378 typedefs.
2379 (__make_unsigned_selector_base): New type to provide helper templates.
2380 (__make_unsigned_selector<_Tp, false, true>): Reimplement using
2381 __make_unsigned_selector_base helpers.
2382 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
2383 (__make_signed_selector<_Tp, true, false>): Remove intermediate
2384 typedefs.
2385 (__make_signed<wchar_t>, __make_signed<char16_t>)
2386 (__make_signed<char32_t>)): Define unconditionally.
2387 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
2388 wchar_t, char16_t and char32_t are transformed correctly.
2389 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
2390 dg-error lineno.
2391 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
2392 wchar_t, char16_t and char32_t are transformed correctly.
2393 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
2394 dg-error lineno.
2395
2396 2018-05-29 Jonathan Wakely <jwakely@redhat.com>
2397
2398 * include/std/variant (__erased_dtor): Qualify call to __get.
2399
2400 2018-05-27 François Dumont <fdumont@gcc.gnu.org>
2401
2402 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
2403 (_Rb_tree(const allocator_type&)): Use latter.
2404 * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
2405 (map(initializer_list<value_type>, const allocator_type&)): Likewise.
2406 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2407 * include/bits/stl_multimap.h
2408 (multimap(const allocator_type&)): Likewise.
2409 (multimap(initializer_list<value_type>, const allocator_type&)):
2410 Likewise.
2411 (multimap(_InputIterator, _InputIterator, const allocator_type&)):
2412 Likewise.
2413 * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
2414 (set(initializer_list<value_type>, const allocator_type&)): Likewise.
2415 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
2416 * include/bits/stl_multiset.h
2417 (multiset(const allocator_type&)): Likewise.
2418 (multiset(initializer_list<value_type>, const allocator_type&)):
2419 Likewise.
2420 (multiset(_InputIterator, _InputIterator, const allocator_type&)):
2421 Likewise.
2422
2423 2018-05-25 François Dumont <fdumont@gcc.gnu.org>
2424
2425 PR libstdc++/85768
2426 * src/c++11/debug.cc: Remove backtrace usage.
2427
2428 2018-05-24 Maya Rashish <coypu@sdf.org>
2429
2430 PR target/85904
2431 * crossconfig.m4: Test for aligned_alloc on netbsd.
2432 * configure: Regenerate.
2433
2434 2018-05-24 Jonathan Wakely <jwakely@redhat.com>
2435
2436 PR libstdc++/69769
2437 PR libstdc++/85886
2438 * include/bits/atomic_base.h (__atomic_base::value_type)
2439 (__atomic_base::difference_type): Add new typedefs.
2440 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
2441 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
2442 (atomic<T*>::operator++, atomic<T*>::operator--)
2443 (atomic<T*>::operator+=, atomic<T*>::operator-=)
2444 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
2445 to enforce C++17 requirement on pointer arithmetic.
2446 (__atomic_val_t, __atomic_diff_t): New alias templates.
2447 (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
2448 (atomic_compare_exchange_weak_explicit)
2449 (atomic_compare_exchange_strong_explicit, atomic_store)
2450 (atomic_exchange, atomic_compare_exchange_weak)
2451 (atomic_compare_exchange_strong): Use __atomic_val_t to make
2452 scalar parameters be non-deduced contexts.
2453 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2454 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
2455 atomic instead of __atomic_base, and use __atomic_diff_t for scalar
2456 parameters.
2457 (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
2458 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
2459 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
2460 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
2461 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
2462 address types.
2463 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
2464 * testsuite/29_atomics/atomic/69769.cc: New test.
2465 * testsuite/29_atomics/atomic/nonmembers.cc: New test.
2466 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2467 Disable test for C++17 and later.
2468 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
2469 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
2470 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
2471 test.
2472
2473 2018-05-23 Jonathan Wakely <jwakely@redhat.com>
2474
2475 * include/bits/fs_path.h (path::__is_encoded_char): Change from class
2476 template to alias template.
2477 (path::__value_type_is_char): Use remove_const_t.
2478 (path:_S_string_from_iter): New helper function.
2479 (path::_S_convert(InputIter, __null_terminated))
2480 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2481 Use _S_string_from_iter.
2482 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
2483 rep for COW strings.
2484 * include/experimental/bits/fs_path.h (path::__is_encoded_char):
2485 Change from class template to alias template.
2486 (path::__value_type_is_char): Use remove_const.
2487 (path:_S_string_from_iter): New helper function.
2488 (path::_S_convert(InputIter, __null_terminated))
2489 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
2490 Use _S_string_from_iter.
2491 * testsuite/27_io/filesystem/path/append/source.cc: Test appending
2492 wide strings.
2493 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
2494 string equality, not path equivalence.
2495 * testsuite/27_io/filesystem/path/construct/format.cc: Check
2496 construction from std::string and std::wstring and input iterators.
2497 * testsuite/27_io/filesystem/path/construct/locale.cc: Check
2498 construction from iterators.
2499 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
2500 exact string equality, not path equivalence.
2501 * testsuite/experimental/filesystem/path/construct/locale.cc: Check
2502 construction from iterators.
2503
2504 * include/bits/fs_path.h (path::_M_type): Change default member
2505 initializer to _Filename.
2506 (path::begin): Create past-the-end iterator for empty path.
2507 * src/filesystem/std-path.cc (path::remove_filename()): Remove
2508 debugging check.
2509 (path::has_relative_path()): Return false for empty filenames.
2510 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
2511 Fix offset of empty final component.
2512 * testsuite/27_io/filesystem/path/itr/components.cc: New.
2513 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
2514
2515 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
2516
2517 Add support for opening file streams from wide character strings.
2518 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
2519 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2520 Define new overload.
2521 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
2522 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
2523 Declare new overload.
2524 * configure.ac: Check for _wfopen.
2525 * crossconfig.m4: Likewise.
2526 * configure: Regenerate.
2527 * config.h.in: Regenerate.
2528 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
2529 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2530 Define new overload.
2531 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
2532 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
2533 Declare new overload.
2534 [_GLIBCXX_HAVE__WFOPEN]
2535 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2536 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
2537 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2538 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
2539 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
2540 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
2541 new overloads.
2542 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
2543 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
2544 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
2545 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
2546 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
2547 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
2548 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
2549
2550 2018-05-21 François Dumont <fdumont@gcc.gnu.org>
2551
2552 PR libstdc++/85845
2553 * include/bits/stl_tree.h
2554 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
2555 qualification.
2556
2557 2018-05-21 Jonathan Wakely <jwakely@redhat.com>
2558
2559 * src/filesystem/std-ops.cc (absolute): Report an error for empty
2560 paths.
2561 (weakly_canonical(const path&)): Do not call canonical on empty path.
2562 (weakly_canonical(const path&, error_code&)): Likewise.
2563 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
2564
2565 PR libstdc++/85818
2566 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
2567 dg-require-filesystem-ts.
2568
2569 PR libstdc++/85843
2570 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
2571 initialize base class to avoid warnings.
2572
2573 2018-05-19 Jonathan Wakely <jwakely@redhat.com>
2574
2575 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
2576 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
2577 little_endian element in bitmask.
2578 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
2579 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
2580
2581 2018-05-18 François Dumont <fdumont@gcc.gnu.org>
2582
2583 * include/bits/stl_tree.h
2584 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
2585 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
2586 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
2587 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
2588 * include/debug/map.h
2589 (map(map&&, const_allocator_type&)): Add noexcept qualitication.
2590 * include/debug/multimap.h
2591 (multimap(multimap&&, const_allocator_type&)): Likewise.
2592 * include/debug/set.h
2593 (set(set&&, const_allocator_type&)): Likewise.
2594 * include/debug/multiset.h
2595 (multiset(multiset&&, const_allocator_type&)): Likewise.
2596 * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
2597 Add checks.
2598 * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
2599 Add checks.
2600 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
2601 Add checks.
2602 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
2603 Add checks.
2604 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
2605 Add checks.
2606 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
2607 Add checks.
2608 * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
2609 Add checks.
2610 * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
2611 Add checks.
2612
2613 2018-05-18 Jason Merrill <jason@redhat.com>
2614
2615 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
2616 for conversion to const_iterator. Add defaulted copy ops.
2617 * libsupc++/new (bad_alloc): Add defaulted copy ops.
2618 * libsupc++/exception.h (exception): Add defaulted copy ops.
2619 * include/std/system_error (system_error): Add defaulted copy ops.
2620 * include/std/stdexcept (domain_error, invalid_argument)
2621 (length_error, out_of_range, range_error, overflow_error)
2622 (underflow_error): Add defaulted copy ops.
2623 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
2624 copy assignment.
2625 * include/bits/allocator.h (allocator): Add defaulted copy assignment.
2626 * include/ext/throw_allocator.h (condition_base): Add defaulted
2627 default and copy ctor and copy assignment.
2628
2629 2018-05-18 Jonathan Wakely <jwakely@redhat.com>
2630
2631 PR libstdc++/85098
2632 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
2633 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
2634 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
2635 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
2636 definitions.
2637 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
2638 whitespace.
2639 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
2640 braces around body of do-while.
2641 * testsuite/28_regex/basic_regex/85098.cc: New
2642
2643 2018-05-17 Jonathan Wakely <jwakely@redhat.com>
2644
2645 PR libstdc++/85818
2646 * src/filesystem/path.cc (path::preferred_separator): Add used
2647 attribute.
2648 * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
2649
2650 PR libstdc++/85812
2651 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
2652 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
2653 Refactor to separate non-throwing and throwing implementations.
2654 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
2655 if constructing the object throws.
2656
2657 2018-05-15 Jonathan Wakely <jwakely@redhat.com>
2658
2659 PR libstdc++/85749
2660 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
2661 (linear_congruential_engine, mersenne_twister_engine)
2662 (subtract_with_carry_engine, discard_block_engine)
2663 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
2664 constrain function templates taking seed sequences.
2665 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
2666 (mersenne_twister_engine::seed(_Sseq&))
2667 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
2668 match declarations.
2669 * include/ext/random (simd_fast_mersenne_twister_engine): Use
2670 __is_seed_seq to constrain function templates taking seed sequences.
2671 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
2672 Change return type to match declaration.
2673 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
2674 New.
2675 * testsuite/26_numerics/random/independent_bits_engine/cons/
2676 seed_seq2.cc: New.
2677 * testsuite/26_numerics/random/linear_congruential_engine/cons/
2678 seed_seq2.cc: New.
2679 * testsuite/26_numerics/random/mersenne_twister_engine/cons/
2680 seed_seq2.cc: New.
2681 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
2682 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
2683 New.
2684 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
2685 seed_seq2.cc: New.
2686 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
2687 seed_seq2.cc: New.
2688
2689 PR libstdc++/83891
2690 * include/bits/fs_path.h (path::is_absolute()): Use same definition
2691 for all operating systems.
2692 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
2693 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
2694 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
2695 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
2696
2697 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
2698 unused <vector> header.
2699 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2700 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
2701 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
2702 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
2703 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2704 Likewise.
2705 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2706 Likewise.
2707 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
2708 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
2709 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2710 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
2711 * testsuite/experimental/filesystem/path/decompose/extension.cc:
2712 Likewise.
2713 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
2714 * testsuite/experimental/filesystem/path/query/has_extension.cc:
2715 Likewise.
2716 * testsuite/experimental/filesystem/path/query/has_filename.cc:
2717 Likewise.
2718 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
2719 Likewise.
2720 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
2721 Likewise.
2722 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
2723 Likewise.
2724 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
2725 Likewise.
2726 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
2727 Likewise.
2728 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
2729 * testsuite/experimental/filesystem/path/query/is_relative.cc:
2730 Likewise.
2731
2732 PR libstdc++/84159
2733 * include/bits/fs_path.h (path::operator/=, path::append): Construct
2734 temporary path before calling _M_append.
2735 (path::_M_append): Change parameter to path and implement C++17
2736 semantics.
2737 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
2738 and more examples from the standard.
2739 * testsuite/27_io/filesystem/path/append/source.cc: New.
2740 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
2741 * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
2742
2743 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
2744 __invoke to prevent ADL.
2745
2746 2018-05-14 Jonathan Wakely <jwakely@redhat.com>
2747
2748 PR libstdc++/81256
2749 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
2750 exceptions from _M_terminate_output().
2751 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
2752 exceptions from close().
2753 * testsuite/27_io/basic_filebuf/close/81256.cc: New.
2754
2755 * include/bits/valarray_array.h (__valarray_get_memory): Remove.
2756 (__valarray_get_storage): Call operator new directly. Remove ignored
2757 top-level restrict qualifier and add malloc attribute instead.
2758 (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
2759
2760 PR libstdc++/67554
2761 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
2762 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
2763
2764 PR libstdc++/82966
2765 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
2766 instead of type.
2767 * testsuite/23_containers/set/modifiers/node_swap.cc: New.
2768
2769 2018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2770
2771 PR libstdc++/80165
2772 * testsuite/20_util/variant/80165.cc: New.
2773
2774 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
2775
2776 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
2777 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list
2778 of C++11 containers with Debug Mode support.
2779 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
2780 * doc/html/*: Regenerate.
2781
2782 2018-05-10 Jason Merrill <jason@redhat.com>
2783
2784 * include/bits/regex_compiler.h (_S_cache_size): Change from
2785 function to variable.
2786
2787 2018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net>
2788
2789 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
2790 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
2791 argument defaulted to +1. Doxy comments on same.
2792 * testsuite/special_functions/02_assoc_legendre/
2793 check_value.cc: Regen.
2794 * testsuite/tr1/5_numerical_facilities/special_functions/
2795 02_assoc_legendre/check_value.cc: Regen.
2796
2797 2018-05-10 Jonathan Wakely <jwakely@redhat.com>
2798
2799 PR libstdc++/85729
2800 * include/bits/c++config.h (__replacement_assert): Add linkage
2801 specification.
2802 * include/bits/std_abs.h: Add comment to closing brace of block.
2803 * include/c_global/cstddef: Add linkage specification.
2804 * include/c_global/cstring: Likewise.
2805 * include/c_global/cwchar: Likewise.
2806
2807 2018-05-09 François Dumont <fdumont@gcc.gnu.org>
2808
2809 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
2810 Rename in...
2811 (_Safe_iterator<>::_S_constant()): ...that.
2812 * include/debug/safe_local_iterator.h
2813 (_Safe_local_iterator<>::_M_constant()): Rename in...
2814 (_Safe_local_iterator<>::_S_constant()): ...that.
2815 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
2816 (_Iterator_state::__rbegin): New.
2817 (_Iterator_state::__rmiddle): New.
2818 (_Iterator_state::__rend): New.
2819 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
2820 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
2821 iterator type.
2822 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
2823 _Is_iterator)): Likewise.
2824 (_Parameter::_S_reverse_state(_Iterator_state)): New.
2825 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
2826 _Is_iterator)): New.
2827 (_Parameter(std::reverse_iterator<> const&, const char*,
2828 _Is_iterator)): New.
2829 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
2830 const char*, _Is_iterator)): New.
2831 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
2832 New.
2833 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
2834 _Is_iterator)): New.
2835 * testsuite/24_iterators/move_iterator/debug_neg.cc: New.
2836 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
2837 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.
2838
2839 2018-05-09 Jonathan Wakely <jwakely@redhat.com>
2840
2841 * include/bits/std_function.h (_Base_manager::_M_get_pointer):
2842 Use constexpr if in C++17 mode.
2843 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
2844 Copy from const object.
2845 * testsuite/20_util/function/cons/non_copyconstructible.cc: New.
2846
2847 2018-05-08 François Dumont <fdumont@gcc.gnu.org>
2848
2849 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h.
2850 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render
2851 backtrace.
2852
2853 * include/debug/macros.h (__glibcxx_check_valid_range_at): New.
2854 * include/debug/functions.h (__check_valid_range): Use latter.
2855 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New,
2856 use latter.
2857 * include/debug/deque
2858 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2859 * include/debug/forward_list
2860 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)):
2861 Likewise.
2862 * include/debug/list
2863 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2864 * include/debug/list
2865 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2866 * include/debug/map.h
2867 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2868 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2869 Likewise.
2870 * include/debug/multimap.h
2871 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2872 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&,
2873 const _Alloc&)): Likewise.
2874 * include/debug/set.h
2875 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2876 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)):
2877 Likewise.
2878 * include/debug/multiset.h
2879 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise.
2880 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&,
2881 const _Alloc&)): Likewise.
2882 * include/debug/string
2883 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)):
2884 Likewise.
2885 * include/debug/unordered_map
2886 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)):
2887 Likewise.
2888 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter,
2889 const _Alloc&)): Likewise.
2890 * include/debug/unordered_set
2891 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)):
2892 Likewise.
2893 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter,
2894 const _Alloc&)): Likewise.
2895 * include/debug/vector
2896 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter.
2897
2898 * include/debug/formatter.h (_Error_formatter::_M_function): New.
2899 (_Error_formatter(const char*, unsigned int)): Adapt.
2900 (_Error_formatter::_M_at): Rename in...
2901 (_Error_formatter::_S_at): ...that and adapt.
2902 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New.
2903 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt.
2904 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function
2905 when available.
2906
2907 2018-05-08 Jonathan Wakely <jwakely@redhat.com>
2908
2909 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA):
2910 Use normal std::vector even in Debug Mode.
2911
2912 PR libstdc++/85672
2913 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry
2914 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero.
2915 * include/Makefile.in: Regenerate.
2916 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition
2917 within conditional block.
2918
2919 2018-05-07 Jonathan Wakely <jwakely@redhat.com>
2920
2921 * doc/xml/manual/using.xml (table.cmd_options): Document that the
2922 C++17 Filesystem implementation also needs -lstdc++fs.
2923
2924 PR libstdc++/85671
2925 * include/bits/fs_path.h (operator/): Permit copy elision.
2926 * include/experimental/bits/fs_path.h (operator/): Likewise.
2927
2928 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
2929
2930 Moar PR libstdc++/80506
2931 * include/bits/random.tcc (gamma_distribution::__generate_impl()):
2932 Fix magic number used in loop condition.
2933
2934 2018-05-04 Jonathan Wakely <jwakely@redhat.com>
2935
2936 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
2937 * include/std/optional (_Optional_payload): Add noexcept to default
2938 constructor. Re-indent.
2939 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
2940 constructor for copying disengaged payloads.
2941 (_Optional_payload<_Tp, true, false, true>): Likewise.
2942 (_Optional_payload<_Tp, true, true, false>): Likewise.
2943 (_Optional_payload<_Tp, true, false, false>): Likewise.
2944 * testsuite/20_util/optional/cons/85642.cc: New.
2945 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
2946
2947 2018-05-03 Jonathan Wakely <jwakely@redhat.com>
2948
2949 PR libstdc++/82644
2950 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
2951 inline definitions instead of using-declarations.
2952 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
2953 * testsuite/tr1/5_numerical_facilities/special_functions/
2954 07_conf_hyperg/compile_cxx17.cc: New.
2955 * testsuite/tr1/5_numerical_facilities/special_functions/
2956 17_hyperg/compile_cxx17.cc: New.
2957
2958 PR libstdc++/84769
2959 * include/std/variant (visit): Qualify std::get call.
2960
2961 PR libstdc++/85632 use uintmax_t for arithmetic
2962 * src/filesystem/ops.cc (experimental::filesystem::space): Perform
2963 arithmetic in result type.
2964 * src/filesystem/std-ops.cc (filesystem::space): Likewise.
2965 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
2966 is greater than free space.
2967 * testsuite/experimental/filesystem/operations/space.cc: New.
2968
2969 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
2970 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
2971 New.
2972 * testsuite/20_util/remove_cvref/value.cc: New.
2973 * testsuite/20_util/remove_cvref/value_ext.cc: New.
2974
2975 PR libstdc++/84087 LWG DR 2268 basic_string default arguments
2976 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
2977 (append(const basic_string&, size_type, size_type)
2978 (assign(const basic_string&, size_type, size_type)
2979 (insert(size_type, const basic_string&, size_type, size_type)
2980 (replace(size_type,size_type,const basic_string&,size_type,size_type)
2981 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2982 Add default arguments (LWG 2268).
2983 [_GLIBCXX_USE_CXX11_ABI=0]
2984 (append(const basic_string&, size_type, size_type)
2985 (assign(const basic_string&, size_type, size_type)
2986 (insert(size_type, const basic_string&, size_type, size_type)
2987 (replace(size_type,size_type,const basic_string&,size_type,size_type)
2988 (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
2989 Likewise.
2990 * testsuite/21_strings/basic_string/dr2268.cc: New test.
2991
2992 PR libstdc++/84535
2993 * include/std/thread (thread::__not_same): New SFINAE helper.
2994 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
2995 first argument is not a std::thread. Add static assertion to check
2996 INVOKE expression is valid.
2997 (thread::thread(thread&), thread::thread(const thread&&)): Remove.
2998 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
2999 __invoke_result for return types and remove exception specifications.
3000 * testsuite/30_threads/thread/cons/84535.cc: New.
3001
3002 * include/std/future (__async_result_of): Use __invoke_result instead
3003 of result_of.
3004
3005 * include/std/any (any_cast): Use __remove_cvref_t.
3006 * include/std/tuple (__make_tuple): Likewise.
3007 * include/std/type_traits (__remove_cvref_t): Define.
3008 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
3009 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
3010 * include/std/variant (__erased_hash): Use __remove_cvref_t.
3011
3012 2018-05-02 François Dumont <fdumont@gcc.gnu.org>
3013
3014 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
3015 ensure overloaded comma not used.
3016 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
3017 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
3018 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
3019 * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
3020 * testsuite/23_containers/list/modifiers/assign/1.cc: New.
3021 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
3022 * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
3023
3024 2018-05-02 Jonathan Wakely <jwakely@redhat.com>
3025
3026 PR libstdc++/68197
3027 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
3028 indices to unsigned.
3029 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
3030 as failure. Refactor error handling.
3031 * testsuite/27_io/ios_base/storage/68197.cc: New.
3032
3033 PR libstdc++/57997
3034 PR libstdc++/83860
3035 * include/bits/gslice_array.h (gslice_array): Define default
3036 constructor as deleted, as per C++11 standard.
3037 * include/bits/mask_array.h (mask_array): Likewise.
3038 * include/bits/slice_array.h (slice_array): Likewise.
3039 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
3040 to namespace __detail.
3041 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
3042 members.
3043 * include/bits/valarray_before.h (_ValArrayRef): New helper for type
3044 of data members in closure objects.
3045 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
3046 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
3047 __detail.
3048 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
3049 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
3050 (_SBase::_M_expr): Use _ValArrayRef for type of data members.
3051 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
3052 (_ValFunClos, _RefFunClos): Move to namespace __detail and add
3053 using-declarations to namespace std.
3054 * testsuite/26_numerics/valarray/83860.cc: New.
3055
3056 * testsuite/backward/strstream_move.cc: Remove duplicate function
3057 call.
3058
3059 PR libstdc++/69608
3060 * include/backward/strstream (strstreambuf): Define move constructor
3061 and move assignment operator.
3062 (istrstream, ostrstream, strstream): Likewise.
3063 * testsuite/backward/strstream_move.cc: New.
3064
3065 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
3066
3067 PR libstdc++/84654
3068 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
3069 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
3070 * configure: Regenerate.
3071 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
3072 based on ENABLE_FLOAT128.
3073 * include/Makefile.in: Regenerate.
3074 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
3075 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
3076 _GLIBCXX_USE_FLOAT128.
3077
3078 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
3079
3080 * configure: Regenerated.
3081
3082 2018-04-19 Jakub Jelinek <jakub@redhat.com>
3083
3084 * configure: Regenerated.
3085
3086 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
3087 Jakub Jelinek <jakub@redhat.com>
3088
3089 PR libstdc++/85442
3090 * src/c++11/Makefile.am: Don't generate debuginfo again for
3091 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
3092 * src/c++11/Makefile.in: Regenerate.
3093
3094 2018-04-18 Jonathan Wakely <jwakely@redhat.com>
3095
3096 PR libstdc++/84442
3097 * testsuite/30_threads/thread/cons/terminate.cc
3098 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
3099
3100 2018-04-18 David Malcolm <dmalcolm@redhat.com>
3101
3102 PR jit/85384
3103 * configure: Regenerate.
3104
3105 2018-04-16 Jonathan Wakely <jwakely@redhat.com>
3106
3107 * testsuite/experimental/filesystem/file_status/1.cc: Add
3108 -DUSE_FILESYSTEM_TS to dg-options.
3109 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3110 Likewise.
3111 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
3112 * testsuite/experimental/filesystem/iterators/
3113 recursive_directory_iterator.cc: Likewise.
3114 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
3115 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
3116 * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
3117 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
3118 * testsuite/experimental/filesystem/operations/create_directories.cc:
3119 Likewise.
3120 * testsuite/experimental/filesystem/operations/create_directory.cc:
3121 Likewise.
3122 * testsuite/experimental/filesystem/operations/create_symlink.cc:
3123 Likewise.
3124 * testsuite/experimental/filesystem/operations/current_path.cc:
3125 Likewise.
3126 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
3127 * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
3128 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
3129 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
3130 * testsuite/experimental/filesystem/operations/last_write_time.cc:
3131 Likewise.
3132 * testsuite/experimental/filesystem/operations/permissions.cc:
3133 Likewise.
3134 * testsuite/experimental/filesystem/operations/read_symlink.cc:
3135 Likewise.
3136 * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
3137 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
3138 * testsuite/experimental/filesystem/operations/status.cc: Likewise.
3139 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3140 Likewise.
3141 * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
3142 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
3143 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
3144 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
3145 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
3146 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
3147 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
3148 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
3149 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
3150 * testsuite/experimental/filesystem/path/construct/default.cc:
3151 Likewise.
3152 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
3153 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
3154 * testsuite/experimental/filesystem/path/construct/string_view.cc:
3155 Likewise.
3156 * testsuite/experimental/filesystem/path/decompose/extension.cc:
3157 Likewise.
3158 * testsuite/experimental/filesystem/path/decompose/filename.cc:
3159 Likewise.
3160 * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
3161 Likewise.
3162 * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
3163 Likewise.
3164 * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
3165 Likewise.
3166 * testsuite/experimental/filesystem/path/decompose/root_name.cc:
3167 Likewise.
3168 * testsuite/experimental/filesystem/path/decompose/root_path.cc:
3169 Likewise.
3170 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
3171 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
3172 Likewise.
3173 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
3174 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
3175 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
3176 Likewise.
3177 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
3178 Likewise.
3179 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
3180 Likewise.
3181 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
3182 Likewise.
3183 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
3184 * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
3185 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
3186 Likewise.
3187 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
3188 * testsuite/experimental/filesystem/path/query/has_extension.cc:
3189 Likewise.
3190 * testsuite/experimental/filesystem/path/query/has_filename.cc:
3191 Likewise.
3192 * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
3193 Likewise.
3194 * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
3195 Likewise.
3196 * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
3197 Likewise.
3198 * testsuite/experimental/filesystem/path/query/has_root_name.cc:
3199 Likewise.
3200 * testsuite/experimental/filesystem/path/query/has_root_path.cc:
3201 Likewise.
3202 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
3203 * testsuite/experimental/filesystem/path/query/is_relative.cc:
3204 Likewise.
3205
3206 2018-04-13 Jonathan Wakely <jwakely@redhat.com>
3207
3208 * src/c++11/Makefile.am: Fix sed command.
3209 * src/c++11/Makefile.in: Regenerate.
3210
3211 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
3212 handle mangled names starting with double underscores on darwin.
3213 * src/c++11/Makefile.in: Regenerate.
3214
3215 2018-04-12 Jonathan Wakely <jwakely@redhat.com>
3216
3217 * src/c++11/Makefile.am: Fix comment.
3218 * src/c++11/Makefile.in: Regenerate.
3219 * src/c++11/cxx11-ios_failure.cc: Fix comment.
3220 * src/c++98/ios_failure.cc: Likewise.
3221
3222 * src/c++11/ios.cc: Remove redundant macro definition.
3223
3224 2018-04-11 Jonathan Wakely <jwakely@redhat.com>
3225
3226 * doc/xml/manual/abi.xml: Document header locations in recent
3227 releases.
3228 * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
3229 * doc/xml/manual/spine.xml: Update copyright years.
3230 * doc/xml/manual/strings.xml: Adjust tolower example to avoid
3231 undefined behaviour.
3232 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
3233 * doc/html/*: Regenerate.
3234
3235 2018-04-10 Jonathan Wakely <jwakely@redhat.com>
3236
3237 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
3238 * doc/xml/manual/backwards_compatibility.xml: Likewise.
3239 * doc/xml/manual/containers.xml: Likewise.
3240 * doc/xml/manual/debug_mode.xml: Likewise.
3241 * doc/xml/manual/extensions.xml: Likewise.
3242 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
3243 * doc/xml/manual/using.xml: Likewise.
3244 * doc/xml/manual/utilities.xml: Likewise.
3245
3246 PR libstdc++/85222
3247 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
3248 cxx11-ios_failure.cc to rewrite type info for __ios_failure.
3249 * src/c++11/Makefile.in: Regenerate.
3250 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
3251 New types.
3252 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
3253 * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
3254 * src/c++98/ios_failure.cc (__construct_ios_failure)
3255 (__destroy_ios_failure, is_ios_failure_handler): New functions.
3256 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
3257 * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
3258 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
3259 handler types, to always catch std::ios_base::failure.
3260 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
3261 * testsuite/27_io/basic_istream/extractors_arithmetic/char/
3262 exceptions_failbit.cc: Likewise.
3263 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
3264 exceptions_failbit.cc: Likewise.
3265 * testsuite/27_io/basic_istream/extractors_other/char/
3266 exceptions_null.cc: Likewise.
3267 * testsuite/27_io/basic_istream/extractors_other/wchar_t/
3268 exceptions_null.cc: Likewise.
3269 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
3270 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
3271 * testsuite/27_io/basic_ostream/inserters_other/char/
3272 exceptions_null.cc: Likewise.
3273 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
3274 exceptions_null.cc: Likewise.
3275 * testsuite/27_io/ios_base/storage/2.cc: Likewise.
3276
3277 2018-04-05 Jonathan Wakely <jwakely@redhat.com>
3278
3279 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
3280 __get calls to avoid ADL and avoid ambiguity due to Clang bug.
3281
3282 2018-04-03 Jonathan Wakely <jwakely@redhat.com>
3283
3284 PR libstdc++/85183
3285 * include/std/variant (_Move_assign_base::operator=): Fix incorrect
3286 value categories.
3287 * testsuite/20_util/variant/85183.cc: New.
3288
3289 2018-03-26 Jonathan Wakely <jwakely@redhat.com>
3290
3291 * include/std/variant (__get): Qualify calls to avoid ADL.
3292 (__select_index): Adjust whitespace.
3293 (variant): Add using-declaration to workaround Clang bug.
3294
3295 2018-03-22 Jonathan Wakely <jwakely@redhat.com>
3296
3297 PR libstdc++/85040
3298 * include/bits/stl_function.h (greater::__not_overloaded)
3299 (less::__not_overloaded, greater_equal::__not_overloaded)
3300 (less_equal::__not_overloaded): Fix ambiguous specializations.
3301 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
3302 tests for type with overloaded operators.
3303
3304 2018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3305
3306 PR libstdc++/77691
3307 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3308 xfail execution on 32-bit Solaris/x86.
3309
3310 2018-03-21 Jonathan Wakely <jwakely@redhat.com>
3311
3312 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
3313 VERIFY instead of assert.
3314 * testsuite/20_util/hash/84998.cc: New test.
3315 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
3316 copy of test adjusted for Debug Mode.
3317 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
3318 test in Debug Mode.
3319
3320 2018-03-20 François Dumont <fdumont@gcc.gnu.org>
3321
3322 PR libstdc++/84998
3323 * include/bits/stl_bvector.h: Fix std::hash friend declaration.
3324 * include/std/bitset: Likewise.
3325 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
3326 declaration.
3327 * include/bits/stl_multimap.h (std::multimap<>): Likewise.
3328 * include/bits/stl_multiset.h (std::multiset<>): Likewise.
3329 * include/bits/stl_set.h (std::set<>): Likewise.
3330 * include/bits/unordered_map.h (std::unordered_map<>): Fix
3331 _Hash_merge_helper friend declaration.
3332 (std::unordered_multimap<>): Likewise.
3333 * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
3334 (std::unordered_multiset<>): Likewise.
3335
3336 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
3337
3338 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
3339 trailing slash for domain level link.
3340 * doc/xml/faq.xml: Ditto.
3341 * doc/xml/manual/appendix_free.xml (software): Ditto.
3342 * doc/xml/manual/intro.xml: Ditto.
3343 * doc/xml/manual/spine.xml: Ditto.
3344 * doc/xml/spine.xml: Ditto.
3345
3346 2018-03-19 Gerald Pfeifer <gerald@pfeifer.com>
3347
3348 * doc/xml/manual/documentation_hacking.xml: Adjust link to
3349 docbook.org.
3350
3351 2018-03-17 Jonathan Wakely <jwakely@redhat.com>
3352
3353 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
3354 to compile as C++98.
3355
3356 2018-03-14 Jonathan Wakely <jwakely@redhat.com>
3357
3358 PR libstdc++/78420
3359 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
3360 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
3361 to ensure total order for pointers.
3362 (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
3363 Add operator() overloads for pointer arguments and make generic
3364 overloads dispatch to new _S_cmp functions when comparisons would
3365 use built-in operators for pointers.
3366 * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
3367
3368 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
3369
3370 PR libstdc++/84773
3371 PR libstdc++/83662
3372 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
3373 * configure: Regenerate.
3374 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
3375 (aligned_alloc): Add using-declaration.
3376 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
3377
3378 2018-03-09 François Dumont <fdumont@gcc.gnu.org>
3379
3380 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
3381 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
3382 registration.
3383
3384 2018-03-09 Jonathan Wakely <jwakely@redhat.com>
3385
3386 PR libstdc++/84769
3387 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
3388 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
3389
3390 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
3391 src/filesystem/std-ops.cc (create_dir): Likewise.
3392
3393 2018-03-08 François Dumont <fdumont@gcc.gnu.org>
3394
3395 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
3396 (StdListIteratorPrinter): Inherit from latter.
3397 (StdFwdListIteratorPrinter): New, inherit from latter.
3398 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
3399 when iterator has no associated container.
3400 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
3401 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
3402 registrations.
3403 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
3404 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
3405
3406 2018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3407
3408 PR libstdc++/84601
3409 * include/std/optional (_Optional_payload): Split into multiple
3410 specializations that can handle different cases of trivial or
3411 non-trivial assignment operators.
3412 * testsuite/20_util/optional/84601.cc: New.
3413 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3414
3415 2018-03-02 Jonathan Wakely <jwakely@redhat.com>
3416
3417 PR libstdc++/84671
3418 * include/bits/parse_numbers.h (_Number_help): Add partial
3419 specialization to handle digit separators. Adjust partial
3420 specialization for recursion temrination to require _Pow == 1ULL.
3421 * testsuite/20_util/duration/literals/84671.cc: New
3422
3423 2018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3424
3425 Implement the missing bits of LWG 2769
3426 * include/std/any (any_cast(const any&)): Add static_assert.
3427 (any_cast(any&)): Likewise.
3428 (any_cast(any&&)): Likewise, and remove the handling
3429 for copyable-but-not-movable type.
3430 * testsuite/20_util/any/misc/any_cast.cc: Adjust.
3431 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
3432 add new tests.
3433
3434 2018-02-23 Jonathan Wakely <jwakely@redhat.com>
3435
3436 PR libstdc++/84532
3437 * include/std/thread (thread::__make_invoker): Construct tuple
3438 directly instead of using make_tuple.
3439 * testsuite/30_threads/async/84532.cc: New.
3440 * testsuite/30_threads/thread/84532.cc: New.
3441
3442 2018-02-20 François Dumont <fdumont@gcc.gnu.org>
3443
3444 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
3445 (template<> __aligned_buffer): Define as __aligned_membuf alias.
3446
3447 2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
3448
3449 PR target/84148
3450 * configure: Regenerate.
3451
3452 2018-02-15 Jonathan Wakely <jwakely@redhat.com>
3453
3454 PR libstdc++/81797
3455 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
3456 * configure: Regenerate.
3457 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
3458 defined.
3459 * include/Makefile.in: Regenerate.
3460
3461 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
3462
3463 PR libstdc++/83833
3464 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
3465 Add -ffloat-store to options for m68k and ia32.
3466
3467 * doc/xml/faq.xml: Update copyright years.
3468 * doc/html/*: Regenerate.
3469
3470 PR libstdc++/83658
3471 * include/std/any (any::__do_emplace): Only set _M_manager after
3472 constructing the contained object.
3473 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
3474 * testsuite/20_util/any/modifiers/83658.cc: New test.
3475
3476 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
3477
3478 PR libstdc++/81076
3479 * include/c_global/cstddef (__byte_operand): Define primary template.
3480 * testsuite/18_support/byte/81076.cc: New test.
3481
3482 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
3483
3484 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
3485 dg-options and dg-add-options order.
3486 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
3487 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
3488 Likewise.
3489 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
3490 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
3491 Likewise.
3492 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
3493 Likewise.
3494 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
3495 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
3496 Likewise.
3497 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
3498 Likewise.
3499 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
3500 Likewise.
3501 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
3502 Likewise.
3503 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
3504 Likewise.
3505 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
3506 Likewise.
3507 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
3508 Likewise.
3509 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
3510 Likewise.
3511 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
3512 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
3513 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
3514 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
3515 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
3516 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
3517 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
3518 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
3519 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
3520 Likewise.
3521 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
3522 Likewise.
3523 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
3524 Likewise.
3525 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
3526 Likewise.
3527
3528 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
3529
3530 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
3531 include linux/types.h when checking linux/random.h header.
3532 * config.h.in: Regenerate.
3533 * configure: Ditto.
3534 * src/c++11/random.cc: Conditionally include linux/types.h.
3535
3536 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
3537
3538 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
3539
3540 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
3541
3542 PR libstdc++/83834
3543 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
3544 pattern with exact match for std::cerr.
3545
3546 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
3547
3548 PR libstdc++/83833
3549 * include/bits/random.h (chi_squared_distribution::param): Update
3550 gamma distribution parameter.
3551 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
3552 test.
3553
3554 PR libstdc++/83830
3555 * include/std/type_traits (has_unique_object_representations_v): Add
3556 variable template.
3557 * testsuite/20_util/has_unique_object_representations/value.cc: Check
3558 variable template.
3559
3560 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
3561
3562 Make optional conditionally
3563 trivially_{copy,move}_{constructible,assignable}
3564 * include/std/optional (_Optional_payload): Fix the comment in
3565 the class head and turn into a primary and one specialization.
3566 (_Optional_payload::_M_engaged): Strike the NSDMI.
3567 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
3568 New.
3569 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
3570 Likewise.
3571 (_Optional_payload<_Tp, false>::_M_get): Likewise.
3572 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
3573 (_Optional_base_impl): Likewise.
3574 (_Optional_base): Turn into a primary and three specializations.
3575 (optional(nullopt)): Change the base init.
3576 * testsuite/20_util/optional/assignment/8.cc: New.
3577 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3578 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
3579
3580 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
3581
3582 PR libstdc++/80276
3583 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
3584 (get_template_arg_list): New.
3585 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
3586 instead.
3587 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
3588 of strings and regular expressions.
3589 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
3590 (FilteringTypePrinter): Add docstring. Match using startswith. Use
3591 strip_inline_namespaces instead of strip_versioned_namespace.
3592 (add_one_type_printer): Prepend namespace to match argument.
3593 (register_type_printers): Add type printers for char16_t and char32_t
3594 string types and for types using cxx11 ABI. Update calls to
3595 add_one_template_type_printer to provide default argument dicts.
3596 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
3597 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
3598 basic_string<unsigned char> and basic_string<signed char>.
3599 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
3600 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
3601
3602 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
3603
3604 PR libstdc++/81092
3605 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3606
3607 2018-01-13 Tim Shen <timshen@google.com>
3608
3609 PR libstdc++/83601
3610 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
3611 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
3612 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
3613
3614 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3615
3616 PR libstdc++/64054
3617 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
3618 Remove dg-xfail-run-if.
3619
3620 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
3621
3622 * include/bits/forward_list.h
3623 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
3624 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
3625 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
3626 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
3627 (_Fwd_list_impl()): Add noexcept qualification.
3628 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
3629 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
3630 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
3631 (_Fwd_list_base()): Default.
3632 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
3633 (_Fwd_list_base(_Fwd_list_base&&)): Default.
3634 (forward_list<>()): Default.
3635 (forward_list<>(forward_list&&)): Default.
3636 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
3637 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
3638 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
3639 * include/bits/forward_list.tcc
3640 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
3641 _M_impl._M_head move assignment.
3642 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
3643 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
3644
3645 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
3646
3647 PR libstdc++/80276
3648 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
3649 (UniquePointerPrinter): Print correct template argument, not type of
3650 the pointer.
3651 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
3652 a type.
3653 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
3654 array type.
3655 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
3656 weak_ptr of array types.
3657
3658 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
3659
3660 PR libstdc++/83709
3661 * include/bits/hashtable_policy.h
3662 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
3663 __first != __last.
3664 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
3665 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
3666 Add false_type parameter.
3667 (_Insert_base::insert): Adapt.
3668 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
3669 Adapt.
3670 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
3671 Add __n_elt parameter, defaulted to 1.
3672 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
3673 policy _M_need_rehash.
3674 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
3675 produce only 1 rehash if necessary.
3676 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
3677 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
3678
3679 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
3680 Jonathan Wakely <jwakely@redhat.com>
3681
3682 PR libstdc++/59253 (partial)
3683 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
3684 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
3685 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
3686 children.
3687 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
3688 of unique_ptr printer.
3689 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
3690 output of shared_ptr printer.
3691
3692 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
3693
3694 PR libstdc++/83626
3695 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
3696 unnecessary symlink_status call.
3697 (remove_all(const path&, error_code&)): Use filesystem::remove.
3698 * src/filesystem/std-ops.cc: Likewise.
3699
3700 PR libstdc++/83279
3701 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
3702 sendfile.
3703
3704 PR libstdc++/83626
3705 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
3706 report an error for ENOENT.
3707 (remove_all(const path&)): Fix type of result variable.
3708 (remove_all(const path&, error_code&)): Use non-throwing increment
3709 for directory iterator. Call POSIX remove directly to avoid redundant
3710 calls to symlink_status. Do not report errors for ENOENT.
3711 * src/filesystem/std-ops.cc: Likewise.
3712 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
3713 overload.
3714 * testsuite/experimental/filesystem/operations/remove_all.cc:
3715 Likewise.
3716
3717 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
3718
3719 PR libstdc++/83626
3720 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
3721 redundant call to ec.clear().
3722 (remove_all(const path&, error_code&))): Do not return an error for
3723 non-existent paths.
3724 * src/filesystem/std-ops.cc: Likewise.
3725 * testsuite/27_io/filesystem/operations/remove.cc: New test.
3726 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
3727 results for non-existent paths.
3728 * testsuite/experimental/filesystem/operations/remove.cc: New test.
3729 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
3730 expected results for non-existent paths.
3731
3732 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
3733 check status_known once.
3734 * include/experimental/bits/fs_ops.h: Likewise.
3735
3736 PR libstdc++/83607
3737 * include/std/functional (__is_byte_like): New trait.
3738 (__is_std_equal_to): Remove.
3739 (__boyer_moore_base_t): Use __is_byte_like instead of
3740 __is_std_equal_to.
3741 * include/experimental/functional (__is_std_equal_to): Remove.
3742 (__boyer_moore_base_t): Use __is_byte_like instead of
3743 __is_std_equal_to.
3744 * testsuite/20_util/function_objects/83607.cc: New test.
3745
3746 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
3747
3748 Protect optional's deduction guide with the feature macro
3749 * include/std/optional: Use the feature macro.
3750
3751 2018-01-03 Jakub Jelinek <jakub@redhat.com>
3752
3753 Update copyright years.
3754 \f
3755 Copyright (C) 2018 Free Software Foundation, Inc.
3756
3757 Copying and distribution of this file, with or without modification,
3758 are permitted in any medium without royalty provided the copyright
3759 notice and this notice are preserved.