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