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