]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
re PR middle-end/77863 (genmatch segfault on a wrong usage of an for operator)
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
38aee22c
FD
12016-10-03 François Dumont <fdumont@gcc.gnu.org>
2
3 * src/c++11/shared_ptr.cc (mask, invalid, get_mutex): Move
4 declaration...
5 * src/c++11/mutex_pool.h: ... here. New.
6 * src/c++11/debug.cc: Use latter.
7
6a0d23af
JW
82016-10-03 Jonathan Wakely <jwakely@redhat.com>
9
606dda21
JW
10 * doc/xml/manual/status_cxx2017.xml: Update gcd/lcm status.
11 * doc/html/*: Regenerate.
12 * include/experimental/numeric (__abs): Move to <numeric>.
13 (gcd, lcm): Use __detail::gcd and __detail::lcm.
14 * include/std/numeric (__detail::__abs_integral)
15 (__detail::__gcd, __detail::__lcm): Define.
16 (gcd, lcm): Define for C++17.
17 * testsuite/26_numerics/gcd/1.cc: New test.
18 * testsuite/26_numerics/lcm/1.cc: New test.
19 * testsuite/experimental/numeric/gcd.cc: Swap contents with ...
20 * testsuite/experimental/numeric/lcd.cc: ... this.
21
e347987d
JW
22 PR libstdc++/68323
23 PR libstdc++/77794
24 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for
25 __cxa_thread_atexit and __gnu_cxx::__freeres.
26 * include/Makefile.am: Add <experimental/bits/lfts_config.h>
27 * include/Makefile.in: Regenerate.
28 * include.bits/basic_string.h: Fix nesting of versioned namespaces.
29 * include/bits/c++config: Declare versioned namespaces for literals.
30 * include/bits/regex.h (basic_regex, match_results): Add workarounds
31 for PR c++/59256.
32 * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
33 * include/std/chrono: Likewise.
34 * include/std/complex: Likewise.
35 * include/std/string_view: Likewise.
36 * include/std/variant: Likewise. Add workaround for PR c++/59256.
37 * include/experimental/bits/fs_fwd.h: Declare versioned namespace.
38 * include/experimental/bits/lfts_config.h: Declare versioned
39 namespaces.
40 * include/experimental/algorithm: Include
41 <experimental/bits/lfts_config.h>.
42 * include/experimental/any: Likewise.
43 * include/experimental/bits/erase_if.h: Likewise.
44 * include/experimental/chrono: Likewise.
45 * include/experimental/functional: Likewise.
46 * include/experimental/memory_resource: Likewise.
47 * include/experimental/optional: Likewise.
48 * include/experimental/propagate_const: Likewise.
49 * include/experimental/random: Likewise.
50 * include/experimental/ratio: Likewise.
51 * include/experimental/system_error: Likewise.
52 * include/experimental/tuple: Likewise.
53 * include/experimental/type_traits: Likewise.
54 * include/experimental/utility: Likewise.
55 * include/experimental/string_view: Likewise. Fix nesting of
56 versioned namespaces.
57 * include/experimental/bits/string_view.tcc: Reopen inline namespace
58 for non-inline function definitions.
59 * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
60 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
61 * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
62 * testsuite/experimental/propagate_const/assignment/move_neg.cc:
63 Likewise.
64 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
65 * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
66 * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
67 * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
68 * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
69 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
70
6a0d23af
JW
71 PR libstdc++/77814
72 * include/bits/std_abs.h: Use "C++" language linkage.
73 * testsuite/17_intro/headers/c++2011/linkage.cc: Move <complex.h> to
74 the end. Add <stdalign.h>.
75
3fe2ddae
VV
762016-10-03 Ville Voutilainen <ville.voutilainen@gmail.com>
77
78 PR libstdc++/77802
79 * testsuite/20_util/tuple/77802.cc: New.
80
81 Revert:
82 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
83 Implement LWG 2729 for tuple.
84 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
85 Suppress conditionally.
86 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
87 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
88 (_Tuple_impl(const _Head&)): Constrain.
89 (_Tuple_impl(_UHead&&)): Likewise.
90 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
91 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
92 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
93 (operator=(const tuple&)): Enable conditionally.
94 (operator=(tuple&&)): Suppress conditionally.
95 (operator=(const tuple<_UElements...>&)): Constrain.
96 (operator=(tuple<_UElements...>&&)): Likewise.
97 (operator=(const tuple&)): Enable conditionally (2-param tuple).
98 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
99 (operator=(const tuple<_U1, _U2>&)): Constrain.
100 (operator=(tuple<_U1, _U2>&&)): Likewise.
101 (operator=(const pair<_U1, _U2>&)): Likewise.
102 (operator=(pair<_U1, _U2>&&)): Likewise.
103 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
104 * testsuite/20_util/tuple/tuple_traits.cc: New.
105
9e28a774
JW
1062016-09-30 Jonathan Wakely <jwakely@redhat.com>
107
36105dbd
JW
108 PR libstdc++/77795
109 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check
110 for gets.
111 * config.h.in: Regenerate.
112 * configure: Regenerate.
113 * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare
114 for C++98 and C++11.
115 * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise.
116 * testsuite/27_io/headers/cstdio/functions_neg.cc: New test.
117
37b204de
JW
118 * doc/xml/manual/intro.xml: Document LWG 2192 changes.
119 * doc/html/*: Regenerate.
120 * include/Makefile.am: Add bits/std_abs.h.
121 * include/Makefile.in: Regenerate.
122 * include/bits/std_abs.h: New header defining all required overloads
123 of std::abs in one place (LWG 2294).
124 * include/c_global/cmath (abs(double), abs(float), abs(long double)):
125 Move to bits/std_abs.h.
126 (abs<_Tp>(_Tp)): Remove.
127 * include/c_global/cstdlib (abs(long), abs(long long), abs(__int<N>)):
128 Move to bits/std_abs.h.
129 * testsuite/26_numerics/headers/cmath/dr2192.cc: New test.
130 * testsuite/26_numerics/headers/cmath/dr2192_neg.cc: New test.
131 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: New test.
132 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: New test.
133
9e28a774
JW
134 PR libstdc++/77801
135 * include/experimental/numeric: Include <numeric>.
136 (__abs): Define.
137 (gcd, lcm): Use __abs instead of std::abs.
138 * testsuite/experimental/numeric/77801.cc: New test.
139 * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs.
140 * testsuite/experimental/numeric/lcm.cc: Likewise.
141
a181f672
VV
1422016-09-29 Ville Voutilainen <ville.voutilainen@gmail.com>
143
144 Make optional::reset noexcept, make optional::value
145 work in constant expressions.
146 * include/std/optional (_M_get): Make constexpr.
147 (reset): Make noexcept.
148 * testsuite/20_util/optional/assignment/7.cc: New.
149 * testsuite/20_util/optional/observers/6.cc: New.
150
998e01a6
JW
1512016-09-29 Jonathan Wakely <jwakely@redhat.com>
152
153 * include/c_global/cmath (hypot, __hypot3): Move C++17 overloads
154 outside _GLIBCXX_USE_C99_MATH_TR1 condition.
155
6d49b790
AM
1562016-09-29 Alan Modra <amodra@gmail.com>
157
158 * configure.ac (LONG_DOUBLE_COMPAT_FLAGS): New ACSUBST.
159 * src/Makefile.am (compatibility-ldbl.o, compatibility-ldbl.lo):
160 Use LONG_DOUBLE_COMPAT_FLAGS.
161 * Makefile.in: Regenerate.
162 * configure: Regenerate.
163 * doc/Makefile.in: Regenerate.
164 * include/Makefile.in: Regenerate.
165 * libsupc++/Makefile.in: Regenerate.
166 * po/Makefile.in: Regenerate.
167 * python/Makefile.in: Regenerate.
168 * src/Makefile.in: Regenerate.
169 * src/c++11/Makefile.in: Regenerate.
170 * src/c++98/Makefile.in: Regenerate.
171 * src/filesystem/Makefile.in: Regenerate.
172 * testsuite/Makefile.in: Regenerate.
173
1b4be62a
JW
1742016-09-28 Jonathan Wakely <jwakely@redhat.com>
175
b236debd
JW
176 * include/std/chrono (system_clock): Fix typo in comment.
177
fd5effb1
JW
178 * include/experimental/bits/fs_fwd.h (file_time_type): Simplify
179 definition.
180 * src/filesystem/ops.cc (file_time): Take error_code parameter and
181 check for overflow.
182 (do_copy_file, last_write_time): Pass error_code in file_time calls.
183 * testsuite/experimental/filesystem/operations/last_write_time.cc:
184 New.
185 * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper.
186
1b4be62a
JW
187 PR libstdc++/77686
188 * include/std/functional (_Any_data): Add may_alias attribute.
189
b658669d
JW
1902016-09-27 Jonathan Wakely <jwakely@redhat.com>
191
4940de30
JW
192 * doc/xml/manual/status_cxx2017.xml: Update status.
193 * doc/html/*: Regenerate.
194 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
195 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
196
b658669d
JW
197 * doc/xml/manual/status_cxx2017.xml: Update status.
198 * include/c_global/cmath (hypot): Add three-dimensional overloads.
199 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
200
71ade764
VV
2012016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
202
203 PR libstdc++/77727
204 * include/std/optional (optional(const optional<_Up>&)):
205 Default-initialize the base and use emplace.
206 (optional(optional<_Up>&&)): Likewise.
207 * testsuite/20_util/optional/cons/77727.cc: New.
208
f2fe9e0a
FD
2092016-09-26 François Dumont <fdumont@gcc.gnu.org>
210
211 * include/debug/safe_base.h
212 (_Safe_iterator_base::_M_detach_single): Make public.
213
976160b9
JW
2142016-09-26 Jonathan Wakely <jwakely@redhat.com>
215
1a08d2da
JW
216 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
217 redefine macro defined in <bits/stl_iterator.h>.
218
976160b9
JW
219 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
220 iterator is not past-the-end.
221 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
222 Likewise.
223 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
224 Likewise.
225 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
226 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
227 (unordered_multimap::extract(const_iterator)): Likewise.
228 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
229 (unordered_multiset::extract(const_iterator)): Likewise.
230
a38814c0
VV
2312016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
232
233 PR libstdc++/77717
234 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
235 Fix an out-of-bounds access.
236
81fea426
MP
2372016-09-26 Marek Polacek <polacek@redhat.com>
238
239 PR c/7652
240 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
241
edc69abb
FD
2422016-09-25 François Dumont <fdumont@gcc.gnu.org>
243
d8bbd665
FD
244 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
245 functional.
246 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
247 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
248
5d045324
FD
249 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
250 bitset*)): Remove __unused__ attribute.
251 * include/debug/safe_base.h (_Safe_iterator_base): Make
252 _Safe_sequence_base a friend.
253 (_Safe_iterator_base::_M_attach): Make protected.
254 (_Safe_iterator_base::_M_attach_single): Likewise.
255 (_Safe_iterator_base::_M_detach): Likewise.
256 (_Safe_iterator_base::_M_detach_single): Likewise.
257 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
258 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
259 (_Safe_sequence_base::_M_swap): Make protected.
260 (_Safe_sequence_base::_M_attach): Make private.
261 (_Safe_sequence_base::_M_attach_single): Likewise.
262 (_Safe_sequence_base::_M_detach): Likewise.
263 (_Safe_sequence_base::_M_detach_single): Likewise.
264 * include/debug/safe_container.h
265 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
266 * include/debug/safe_iterator.h
267 (_Safe_iterator::operator++()): Name __scoped_lock instance.
268 * include/debug/safe_iterator.tcc: Remove trailing line.
269 * include/debug/safe_unordered_base.h
270 (_Safe_local_iterator_base::_M_attach): Make protected.
271 (_Safe_local_iterator_base::_M_attach_single): Likewise.
272 (_Safe_local_iterator_base::_M_detach): Likewise.
273 (_Safe_local_iterator_base::_M_detach_single): Likewise.
274 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
275 (_Safe_unordered_container_base::_M_attach_local): Make private.
276 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
277 (_Safe_unordered_container_base::_M_detach_local): Likewise.
278 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
279
edc69abb
FD
280 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
281 Adjust whitespaces.
282
a922c5ff
JW
2832016-09-23 Jonathan Wakely <jwakely@redhat.com>
284
13190419
JW
285 PR libstdc++/56166
286 PR libstdc++/77582
287 * include/bits/basic_string.h (basic_string::clear()): Drop reference
288 and use empty rep.
289 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
290 Likewise.
291 * testsuite/21_strings/basic_string/56166.cc: New.
292 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
293
a922c5ff
JW
294 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
295 (basic_string::erase(size_type, size_type)): Add fast path for
296 truncating the string, by calling _M_set_length directly.
297 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
298 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
299 (basic_string::resize(size_type, _CharT)): Likewise.
300
7be8d663
JM
3012016-09-22 Jason Merrill <jason@redhat.com>
302
303 * configure.ac: Define HAVE_MEMALIGN for newlib.
304
320c7be3
SH
3052015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
306
307 * config/cpu/m68k/atomicity.h: Adjust comment.
308 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
309 explicit atomicity_dir setup via configure.host.
310 * configure.host (rtems-*): Set atomicity_dir.
311 * configure: Regenerate.
312
2dbe56bd
JW
3132016-09-22 Jonathan Wakely <jwakely@redhat.com>
314
315 Implement C++17 node extraction and insertion (P0083R5)
316 * doc/xml/manual/status_cxx2017.xml: Document status.
317 * doc/html/*: Regenerate.
318 * include/Makefile.am: Add bits/node_handle.h and reorder.
319 * include/Makefile.in: Regenerate.
320 * include/bits/hashtable.h (_Hashtable::node_type)
321 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
322 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
323 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
324 (_Hash_merge_helper): Define primary template.
325 * include/bits/node_handle.h: New header.
326 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
327 friend.
328 (map::node_type, map::insert_return_type, map::extract, map::merge)
329 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
330 Define new members.
331 (_Rb_tree_merge_helper): Specialize for map.
332 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
333 as friend.
334 (multimap::node_type, multimap::extract, multimap::merge)
335 (multimap::insert(node_type&&))
336 (multimap::insert(const_iterator, node_type&&)): Define.
337 (_Rb_tree_merge_helper): Specialize for multimap.
338 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
339 as friend.
340 (multiset::node_type, multiset::extract, multiset::merge)
341 (multiset::insert(node_type&&))
342 (multiset::insert(const_iterator, node_type&&)): Define.
343 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
344 friend.
345 (set::node_type, set::insert_return_type, set::extract, set::merge)
346 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
347 Define.
348 (_Rb_tree_merge_helper): Specialize for set.
349 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
350 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
351 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
352 (_Rb_tree::_M_reinsert_node_hint_unique)
353 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
354 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
355 (_Rb_tree_merge_helper): Specialize for multiset.
356 * include/bits/unordered_map.h (unordered_map): Declare
357 unordered_map<> and unordered_multimap<> as friends.
358 (unordered_map::node_type, unordered_map::insert_return_type)
359 (unordered_map::extract, unordered_map::merge)
360 (unordered_map::insert(node_type&&))
361 (unordered_map::insert(const_iterator, node_type&&))
362 (unordered_multimap): Declare _Hash_merge_helper as friend.
363 (unordered_multimap::node_type, unordered_multimap::extract)
364 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
365 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
366 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
367 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
368 Declare _Hash_merge_helper as friend.
369 (unordered_set::node_type, unordered_set::insert_return_type)
370 (unordered_set::extract, unordered_set::merge)
371 (unordered_set::insert(node_type&&))
372 (unordered_set::insert(const_iterator, node_type&&)): Define.
373 (unordered_multiset::node_type, unordered_multiset::extract)
374 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
375 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
376 (_Hash_merge_helper): Specialize for unordered sets and multisets.
377 * include/debug/map.h (map): Add using declarations or forwarding
378 functions for new members.
379 * include/debug/map.h (multimap): Likewise.
380 * include/debug/map.h (multiset): Likewise.
381 * include/debug/map.h (set): Likewise.
382 * include/debug/unordered_map (unordered_map, unordered_multimap):
383 Likewise.
384 * include/debug/unordered_set( unordered_set, unordered_multiset):
385 Likewise.
386 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
387 helper function.
388 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
389 (StdNodeHandlePrinter): Define printer for node handles.
390 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
391 * testsuite/23_containers/map/modifiers/extract.cc: New.
392 * testsuite/23_containers/map/modifiers/merge.cc: New.
393 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
394 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
395 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
396 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
397 * testsuite/23_containers/set/modifiers/extract.cc: New.
398 * testsuite/23_containers/set/modifiers/merge.cc: New.
399 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
400 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
401 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
402 New.
403 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
404 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
405 New.
406 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
407 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
408 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
409 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
410 dg-error lineno.
411 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
412
8a4c4f12
VV
4132016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
414
415 Fix tests on old arm platforms for optional.
416 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
417
64626fca
JW
4182016-09-22 Jonathan Wakely <jwakely@redhat.com>
419
6fdc74c9
JW
420 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
421 recent change to _Variant_storage.
422 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
423 reference type.
424
64626fca
JW
425 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
426 std::forward and ::new. Cast pointer to void*.
427 * include/std/variant (_Variant_storage, _Union, _Variant_base)
428 (__access, __visit_invoke, variant, visit): Qualify std::forward.
429 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
430
c42bc5d7
TS
4312016-09-22 Tim Shen <timshen@google.com>
432
64626fca 433 * include/std/variant (variant::operator=): Fix assignment
c42bc5d7 434 on references.
64626fca 435 * testsuite/20_util/variant/compile.cc: Add test.
c42bc5d7 436
41501d1a
TS
4372016-09-22 Tim Shen <timshen@google.com>
438
439 PR libstdc++/77641
440 * include/std/variant (_Variant_storage::_Variant_storage):
441 Change _Variant_storage's union to be default constructible.
442 * testsuite/20_util/variant/compile.cc: New test.
443
b641f833
VV
4442016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
445
446 PR libstdc++/77288
447 * include/std/optional (__is_optional_impl, __is_optional): Remove.
448 (__converts_from_optional, __assigns_from_optional): New.
449 (optional(_Up&&)): Use is_same instead of __is_optional.
450 (optional(const optional<_Up>&)): Constrain with
451 __converts_from_optional.
452 (optional(optional<_Up>&&)): Likewise.
453 (operator=(_Up&&)): Use is_same instead of __is_optional, check
454 is_same and is_scalar.
455 (operator=(const optional<_Up>&)): Constrain with
456 __converts_from_optional and __assigns_from_optional.
457 (operator=(optional<_Up>&&)): Likewise.
458 * testsuite/20_util/optional/77288.cc: New.
459 * testsuite/20_util/optional/cons/value.cc: Adjust.
460
55786785
VV
4612016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
462
463 Implement LWG 2729 for tuple.
464 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
465 Suppress conditionally.
466 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
467 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
468 (_Tuple_impl(const _Head&)): Constrain.
469 (_Tuple_impl(_UHead&&)): Likewise.
470 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
471 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
472 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
473 (operator=(const tuple&)): Enable conditionally.
474 (operator=(tuple&&)): Suppress conditionally.
475 (operator=(const tuple<_UElements...>&)): Constrain.
476 (operator=(tuple<_UElements...>&&)): Likewise.
477 (operator=(const tuple&)): Enable conditionally (2-param tuple).
478 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
479 (operator=(const tuple<_U1, _U2>&)): Constrain.
480 (operator=(tuple<_U1, _U2>&&)): Likewise.
481 (operator=(const pair<_U1, _U2>&)): Likewise.
482 (operator=(pair<_U1, _U2>&&)): Likewise.
483 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
484 * testsuite/20_util/tuple/tuple_traits.cc: New.
485
f524d5b3
VV
4862016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
487
488 PR libstdc++/77537
489 Implement LWG 2729 for pair.
490 * include/bits/stl_pair.h (_PCC): New.
491 (_ConstructiblePair, _ImplicitlyConvertiblePair):
492 Turn into static member functions of _PCC.
493 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
494 (_PCCP): New.
495 (pair(const _T1&, const _T2&)): Adjust.
496 (_PCCFP): New.
497 (pair(const pair<_U1, _U2>&)): Adjust.
498 (pair(_U1&&, const _T2&)): Likewise.
499 (pair(const _T1&, _U2&&)): Likewise.
500 (pair(_U1&&, _U2&&)): Likewise.
501 (pair(pair<_U1, _U2>&&)): Likewise.
502 (operator=(const pair&)): Make conditionally deleted.
503 (operator=(pair&&)): Make conditionally suppressed.
504 (operator=(const pair<_U1, _U2>&)): Constrain.
505 (operator=(pair<_U1, _U2>&&): Likewise.
506 * include/std/type_traits (__nonesuch): New.
507 * testsuite/20_util/pair/traits.cc: New.
508
377f30c0
VV
5092016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
510
511 PR libstdc++/77619
512 * include/bits/stl_construct.h: (_Construct_novalue): New.
513 (_Destroy_n_aux, _Destroy_n): New.
514 * include/bits/stl_uninitialized.h: (type_traits):
515 New include in C++11 mode.
516 (__uninitialized_default_novalue_1): New.
517 (__uninitialized_default_novalue_n_1): Likewise.
518 (__uninitialized_default_novalue): Likewise.
519 (__uninitialized_default_novalue_n): Likewise.
520 (__uninitialized_copy_n_pair): Likewise.
521 (uninitialized_default_construct):
522 Use __uninitialized_default_novalue.
523 (uninitialized_default_construct_n):
524 Use __uninitialized_default_novalue_n.
525 (uninitialized_value_construct): Use __uninitialized_default.
526 (uninitialized_value_construct_n): Use __uninitialized_default_n.
527 (uninitialized_move): Use uninitialized_copy.
528 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
529 (destroy_at): Use _Destroy.
530 (destroy): Likewise.
531 (destroy_n): Likewise.
532 * testsuite/20_util/specialized_algorithms/
533 memory_management_tools/1.cc: Add tests for exceptions,
534 add tests for trivial cases for construct and move.
535
564beb5f
JW
5362016-09-20 Jonathan Wakely <jwakely@redhat.com>
537
538 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
539 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
540
019270bc
JW
5412016-09-19 Jonathan Wakely <jwakely@redhat.com>
542
d0f59435
JW
543 PR libstdc++/77645
544 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
545 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
546 division to int to work with Python 3.
547
ee1ab3e3
JW
548 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
549
a0a1009a
JW
550 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
551 display_hint to be set by subclasses.
552 (StdVariantPrinter): Use array for display_hint. Adjust output to be
553 more similar to std::any and std::optional output.
554 (register_type_printers): Add type printers for basic_string_view
555 typedefs and experimental::any. Adjust type printers for
556 fundamentals_v1 templates to match fundamentals_v2 and later.
557 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
558
019270bc
JW
559 PR libstdc++/77645
560 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
561 argument.
562 (ListWorkerBase.get_value_from_node): Define new method.
563 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
564
00895372
JW
5652016-09-17 Jonathan Wakely <jwakely@redhat.com>
566
567 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
568 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
569 Register for C++17 components in namespace std. Strip inline namespace
570 from typename.
571
6ee3fd97
JW
5722016-09-16 Jonathan Wakely <jwakely@redhat.com>
573
574 * doc/xml/manual/profile_mode.xml: Fix typo.
575 * doc/html/manual/profile_mode_devel.html: Regenerate.
576
84c08ec9
JW
5772016-09-16 Jonathan Wakely <jwakely@redhat.com>
578 Marc Glisse <marc.glisse@inria.fr>
579
580 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
581 (operator new(size_t, align_val_t)): Replace modulus operator with
582 mask.
583
426042f5
JW
5842016-09-16 Jonathan Wakely <jwakely@redhat.com>
585
586 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
587 Increase alignment if less than sizeof(void*).
588 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
589 Increase size if not a multiple of alignment.
590
0273c10e
JW
5912016-09-15 Jonathan Wakely <jwakely@redhat.com>
592
1b75c936
JW
593 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
594 * doc/html/*: Regenerate.
700e2faa
JW
595
596 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
597 -Wno-deprecated.
598 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
0273c10e 599
20a1e5b8
MP
6002016-09-14 Marek Polacek <polacek@redhat.com>
601
602 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
603 -Wno-deprecated.
604
13cddbc1
CL
6052016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
606
607 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
608 Move dg-do directive before dg-skip.
609 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
610 Move dg-do directive before dg-require.
611 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
612 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
613 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
614 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
615 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
616 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
617 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
618 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
619 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
620 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
621 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
622 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
623 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
624 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
625 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
626 Likewise.
627 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
628 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
629 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
630 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
631 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
632
8e14a10c
VV
6332016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
634
635 Implement P0040R3, Extending memory management tools.
636 * include/bits/stl_uninitialized.h (utility): New include
637 in C++17 mode.
638 (uninitialized_default_construct): New.
639 (uninitialized_default_construct_n): Likewise.
640 (uninitialized_value_construct): Likewise.
641 (uninitialized_value_construct_n): Likewise.
642 (uninitialized_move): Likewise.
643 (uninitialized_move_n): Likewise.
644 (destroy_at, destroy, destroy_n): Likewise.
7a461e27
JW
645 * testsuite/20_util/specialized_algorithms/memory_management_tools/
646 1.cc: New.
8e14a10c 647
a313485b
JM
6482016-09-12 Jason Merrill <jason@redhat.com>
649
650 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
651
5e8037ba
VV
6522016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
653
654 Implement P0253R1, Fixing a design mistake in the searchers
655 interface in Library Fundamentals.
656 * include/std/functional: (utility): New include in C++17 mode.
657 (default_searcher): Use a pair as return type, adjust the definition.
658 (boyer_moore_searcher): Likewise.
659 (boyer_moore_horspool_searcher): Likewise.
660 * testsuite/20_util/function_objects/searchers.cc: Adjust.
661
f82dfb8d
VV
6622016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
663
664 Implement C++17 string searchers.
665 * include/std/functional: (unordered_map, vector): New includes
666 in C++17 mode.
667 (array, bits/stl_algo.h): Likewise.
668 (default_searcher, __boyer_moore_map_base): New.
669 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
670 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
671 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
672 (make_boyer_moore_searcher): Likewise.
673 (make_boyer_moore_horspool_searcher): Likewise.
674 * testsuite/20_util/function_objects/searchers.cc: New.
675
684211e1
MW
6762016-09-12 Matthew Wahab <matthew.wahab@arm.com>
677
678 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
679 Move dg-do directive before dg-require.
680 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
681 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
682 Likewise.
683 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
684 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
685 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
686 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
687 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
688 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
689 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
690 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
691 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
692 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
693 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
694 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
695 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
696 Likewise.
7a461e27
JW
697 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
698 Likewise.
684211e1
MW
699 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
700 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
7a461e27
JW
701 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
702 Likewise.
703 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
704 Likewise.
705 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
706 Likewise.
707 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
708 Likewise.
709 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
710 Likewise.
711 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
712 Likewise.
713 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
714 Likewise.
715 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
716 Likewise.
717 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
718 Likewise.
719 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
720 Likewise.
721 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
722 Likewise.
723 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
724 Likewise.
725 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
684211e1 726 Likewise.
7a461e27
JW
727 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
728 Likewise.
729 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
730 Likewise.
731 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
732 Likewise.
733 * testsuite/23_containers/forward_list/debug/
734 iterator_self_move_assign_neg.cc: Likewise.
684211e1
MW
735 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
736 Likewise.
7a461e27
JW
737 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
738 Likewise.
739 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
740 Likewise.
741 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
742 Likewise.
743 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
744 Likewise.
745 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
746 Likewise.
747 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
748 Likewise.
749 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
750 Likewise.
684211e1
MW
751 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
752 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
753 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
754 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
755 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
756 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
757 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
758 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
759 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
760 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
761 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
762 Likewise.
763 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
764 * testsuite/23_containers/map/debug/60499.cc: Likewise.
765 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
766 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
767 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
768 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
769 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
770 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
771 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
772 Likewise.
773 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
774 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
775 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
776 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
777 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
778 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
779 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
780 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
7a461e27
JW
781 * testsuite/23_containers/multimap/debug/
782 iterator_self_move_assign_neg.cc: Likewise.
783 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
684211e1 784 Likewise.
684211e1
MW
785 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
786 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
787 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
788 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
789 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
790 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
791 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
7a461e27
JW
792 * testsuite/23_containers/multiset/debug/
793 iterator_self_move_assign_neg.cc: Likewise.
794 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
684211e1 795 Likewise.
684211e1
MW
796 * testsuite/23_containers/set/debug/60499.cc: Likewise.
797 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
798 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
799 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
800 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
801 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
802 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
803 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
804 Likewise.
805 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
806 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
807 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
808 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
7a461e27
JW
809 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
810 Likewise.
684211e1
MW
811 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
812 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
7a461e27
JW
813 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
814 Likewise.
815 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
816 Likewise.
817 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
818 Likewise.
684211e1
MW
819 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
820 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
821 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
822 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
823 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
7a461e27
JW
824 * testsuite/23_containers/unordered_map/debug/
825 invalid_local_iterator_compare_neg.cc: Likewise.
826 * testsuite/23_containers/unordered_map/debug/
827 invalid_local_iterator_range_neg.cc: Likewise.
828 * testsuite/23_containers/unordered_map/debug/
829 iterator_self_move_assign_neg.cc: Likewise.
684211e1
MW
830 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
831 Likewise.
832 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
833 Likewise.
7a461e27
JW
834 * testsuite/23_containers/unordered_map/debug/
835 use_erased_local_iterator_neg.cc: Likewise.
836 * testsuite/23_containers/unordered_map/debug/
837 use_invalid_iterator_neg.cc: Likewise.
838 * testsuite/23_containers/unordered_map/debug/
839 use_invalid_local_iterator_neg.cc: Likewise.
840 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
841 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
684211e1 842 Likewise.
7a461e27 843 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
684211e1 844 Likewise.
684211e1
MW
845 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
846 Likewise.
7a461e27
JW
847 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
848 Likewise.
849 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
850 Likewise.
684211e1
MW
851 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
852 Likewise.
853 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
854 Likewise.
855 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
856 Likewise.
7a461e27 857 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
684211e1 858 Likewise.
7a461e27 859 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
684211e1 860 Likewise.
7a461e27 861 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
684211e1 862 Likewise.
7a461e27 863 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
684211e1 864 Likewise.
7a461e27 865 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
684211e1 866 Likewise.
7a461e27
JW
867 * testsuite/23_containers/unordered_multimap/debug/
868 invalid_local_iterator_compare_neg.cc: Likewise.
869 * testsuite/23_containers/unordered_multimap/debug/
870 invalid_local_iterator_range_neg.cc: Likewise.
871 * testsuite/23_containers/unordered_multimap/debug/
872 iterator_self_move_assign_neg.cc: Likewise.
873 * testsuite/23_containers/unordered_multimap/debug/
874 max_load_factor_neg.cc: Likewise.
875 * testsuite/23_containers/unordered_multimap/debug/
876 self_move_assign_neg.cc: Likewise.
877 * testsuite/23_containers/unordered_multimap/debug/
878 use_erased_local_iterator_neg.cc: Likewise.
879 * testsuite/23_containers/unordered_multimap/debug/
880 use_invalid_iterator_neg.cc: Likewise.
881 * testsuite/23_containers/unordered_multimap/debug/
882 use_invalid_local_iterator_neg.cc: Likewise.
684211e1
MW
883 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
884 Likewise.
885 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
886 Likewise.
887 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
888 Likewise.
889 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
890 Likewise.
891 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
892 Likewise.
893 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
894 Likewise.
895 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
896 Likewise.
897 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
898 Likewise.
899 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
900 Likewise.
7a461e27 901 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
684211e1 902 Likewise.
7a461e27 903 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
684211e1 904 Likewise.
7a461e27 905 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
684211e1 906 Likewise.
7a461e27 907 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
684211e1 908 Likewise.
7a461e27 909 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
684211e1 910 Likewise.
7a461e27
JW
911 * testsuite/23_containers/unordered_multiset/debug/
912 invalid_local_iterator_compare_neg.cc: Likewise.
913 * testsuite/23_containers/unordered_multiset/debug/
914 invalid_local_iterator_range_neg.cc: Likewise.
915 * testsuite/23_containers/unordered_multiset/debug/
916 iterator_self_move_assign_neg.cc: Likewise.
917 * testsuite/23_containers/unordered_multiset/debug/
918 max_load_factor_neg.cc: Likewise.
919 * testsuite/23_containers/unordered_multiset/debug/
920 self_move_assign_neg.cc: Likewise.
921 * testsuite/23_containers/unordered_multiset/debug/
922 use_erased_local_iterator_neg.cc: Likewise.
923 * testsuite/23_containers/unordered_multiset/debug/
924 use_invalid_iterator_neg.cc: Likewise.
925 * testsuite/23_containers/unordered_multiset/debug/
926 use_invalid_local_iterator_neg.cc: Likewise.
684211e1
MW
927 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
928 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
929 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
7a461e27
JW
930 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
931 Likewise.
684211e1
MW
932 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
933 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
7a461e27
JW
934 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
935 Likewise.
936 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
937 Likewise.
938 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
939 Likewise.
684211e1
MW
940 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
941 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
942 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
943 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
944 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
7a461e27
JW
945 * testsuite/23_containers/unordered_set/debug/
946 invalid_local_iterator_compare_neg.cc: Likewise.
947 * testsuite/23_containers/unordered_set/debug/
948 invalid_local_iterator_range_neg.cc: Likewise.
949 * testsuite/23_containers/unordered_set/debug/
950 iterator_self_move_assign_neg.cc: Likewise.
951 * testsuite/23_containers/unordered_set/debug/
952 max_load_factor_neg.cc: Likewise.
953 * testsuite/23_containers/unordered_set/debug/
954 self_move_assign_neg.cc: Likewise.
955 * testsuite/23_containers/unordered_set/debug/
956 use_erased_local_iterator_neg.cc: Likewise.
957 * testsuite/23_containers/unordered_set/debug/
958 use_invalid_iterator_neg.cc: Likewise.
959 * testsuite/23_containers/unordered_set/debug/
960 use_invalid_local_iterator_neg.cc: Likewise.
684211e1
MW
961 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
962 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
963 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
7a461e27
JW
964 * testsuite/23_containers/vector/debug/
965 iterator_self_move_assign_neg.cc: Likewise.
966 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
684211e1 967 Likewise.
684211e1
MW
968 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
969 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
970 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
971 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
972 * testsuite/29_atomics/atomic/60658.cc: Likewise.
973 * testsuite/29_atomics/atomic/60695.cc: Likewise.
974 * testsuite/29_atomics/atomic/62259.cc: Likewise.
975 * testsuite/29_atomics/atomic/64658.cc: Likewise.
976 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
977 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
7a461e27
JW
978 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
979 Likewise.
684211e1 980
25011292
JW
9812016-09-11 Jonathan Wakely <jwakely@redhat.com>
982
983 * libsupc++/new_opant.cc: Include exception_defines.h.
984 * libsupc++/new_opvant.cc: Likewise.
985
af63ba4b
JM
9862016-09-09 Jason Merrill <jason@redhat.com>
987
988 Implement P0035R4, C++17 new of over-aligned types.
989 * libsupc++/new: Declare aligned new/delete operators.
990 * config/abi/pre/gnu.ver: Export them.
991 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
992 _aligned_malloc.
993 * libsupc++/new_opa.cc: New.
994 * libsupc++/new_opant.cc: New.
995 * libsupc++/new_opva.cc: New.
996 * libsupc++/new_opva.cc: New.
997 * libsupc++/del_opa.cc: New.
998 * libsupc++/del_opant.cc: New.
999 * libsupc++/del_opsa.cc: New.
1000 * libsupc++/del_opva.cc: New.
1001 * libsupc++/del_opvant.cc: New.
1002 * libsupc++/del_opvsa.cc: New.
1003 * libsupc++/Makefile.am: Build them.
1004
f75d5999
TS
10052016-09-05 Tim Shen <timshen@google.com>
1006
1007 * include/std/variant: include bits/move.h for std::addressof.
1008
eddca7bd
MS
10092016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
1010
7a461e27
JW
1011 * include/std/variant (_Variant_storage::_M_storage()): Use
1012 std::addressof instead of operator& to take address.
eddca7bd 1013
5a810362
MK
10142016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1015
1016 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
1017 setrlimit on both native and cross targets.
1018 * configure: Regenerate.
1019
3625264f
JW
10202016-08-31 Jonathan Wakely <jwakely@redhat.com>
1021
7663cae2
JW
1022 * include/bits/shared_ptr.h (_Assignable): New alias template.
1023 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
1024 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
1025 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1026 _Assignable.
1027 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
1028 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
1029 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
1030 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
1031 _Assignable.
1032 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
1033 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
1034 _Convertible.
1035 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
1036 match on any line.
1037 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1038 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
1039 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
1040 expected errors. Remove unnecessary code.
1041 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
1042
e46d22a8
JW
1043 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
1044 comparison object.
1045 * testsuite/23_containers/set/move_comparison.cc: New test.
1046
3625264f
JW
1047 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1048 New test.
1049
7875b41f
VV
10502016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
1051
1052 PR libstdc++/77395
1053 * include/std/type_traits (is_constructible): Forward-declare...
1054 (__is_base_to_derived_ref): ...and use here.
1055 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1056 * testsuite/20_util/is_constructible/77395.cc: New.
1057 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
1058 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1059 Likewise.
1060 * testsuite/20_util/tuple/77395.cc: New.
1061
e1becf59
UB
10622016-08-30 Uros Bizjak <ubizjak@gmail.com>
1063
1064 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
1065 directive above dg-require-namedlocale directive.
1066 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
1067 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
1068 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
1069 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
1070 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
1071
4aebb4e4
TS
10722016-08-27 Tim Shen <timshen@google.com>
1073
1074 PR libstdc++/77356
1075 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
1076 _M_expression_term): Modify to support dash literal.
1077 * include/bits/regex_scanner.h: Add dash as a token type to make
1078 a different from the mandated dash literal by escaping.
1079 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
1080 token in bracket expression parsing.
1081 * testsuite/28_regex/regression.cc: Add new testcases.
1082
52066eae
JW
10832016-08-26 Jonathan Wakely <jwakely@redhat.com>
1084
10491e4c
JW
1085 PR libstdc++/51960
1086 * doc/xml/manual/intro.xml: Document DR 2127 change.
1087 * doc/html/*: Regenerate.
1088 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
1089 (operator++(), operator++(int)): Use injected class name.
1090 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
1091
52066eae
JW
1092 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
1093 using -std in dg-options.
1094
e8223484
JW
10952016-08-26 Jonathan Wakely <jwakely@redhat.com>
1096 Pedro Alves <palves@redhat.com>
1097
1098 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
1099 and restore dg-interpreter-batch-mode.
1100 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
1101 gdb-dg-runtest instead of dg-runtest.
1102 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1103
86bbf15b
JW
11042016-08-26 Jonathan Wakely <jwakely@redhat.com>
1105
1106 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
1107 precise patterns for basic_string constructors.
1108 (GLIBCXX_3.4.23): Export new constructors.
1109 * doc/xml/manual/intro.xml: Document LWG 2583 status.
1110 * doc/html/*: Regenerate.
1111 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1112 (basic_string(const basic_string&, size_type, const Alloc&)): Add
1113 new constructor for LWG 2583.
1114 (basic_string(const basic_string&, size_type, size_type)): Remove
1115 default argument.
1116 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
1117 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
1118 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
1119 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
1120
9a38acdf
AK
11212016-08-24 Aditya Kumar <hiraditya@msn.com>
1122
1123 * include/bits/algorithmfwd.h: Remove trailing whitespace.
1124 * include/bits/shared_ptr_base.h: Likewise.
1125
06db9920
JW
11262016-08-23 Jonathan Wakely <jwakely@redhat.com>
1127
e90a8010
JW
1128 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
1129 * include/profile/array (array): Likewise.
1130 (array::swap): Fix exception specification for zero-sized arrays.
1131
5ea387db
JW
1132 PR libstdc++/77334
1133 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
1134 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
1135 * testsuite/23_containers/map/77334.cc: New test.
1136
5d1c6b3e
JW
1137 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
1138 * doc/html/*: Regenerate.
1139
457c4a3f
JW
1140 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
1141 * testsuite/experimental/feat-lib-fund.cc: Likewise.
1142
b405d54f
JW
1143 PR libstdc++/71771
1144 * include/bits/stl_iterator.h
1145 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
1146 define for C++98 mode.
1147 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
1148 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
1149 -std=gnu++98.
1150 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
1151 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
1152 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
1153 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
1154 difference operator.
1155 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
1156 difference operator for C++98.
1157 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
1158
06db9920
JW
1159 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
1160 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
1161 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
1162 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
1163 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
1164 Likewise.
1165 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
1166 _GLIBCXX14_CONSTEXPR.
1167 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
1168 * include/std/array (array::begin, array::end, array::rbegin)
1169 (array::rend, array::cbegin, array:cend, array::crbegin)
1170 (array::crend, array::operator[], array::at, array::front)
1171 (array::back, array::data): Likewise.
1172 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
1173 with separate tests for C++11, C++14, and C++17.
1174 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
1175 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
1176 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
1177
d79d6252
TS
11782016-08-22 Tim Shen <timshen@google.com>
1179
1180 Split _M_dfs() into smaller functions.
1181 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
1182 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
1183 (_M_handle_line_end_assertion, _M_handle_word_boundary)
1184 (_M_handle_subexpr_lookahead, _M_handle_match)
1185 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
1186 Add separate function declarations.
1187 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1188
27abac26
GN
11892016-08-22 Gleb Natapov <gleb@scylladb.com>
1190
1191 PR libstdc++/68297
1192 * config/abi/pre/gnu-versioned-namespace.ver: Export
1193 __cxa_init_primary_exception and std::exception_ptr(void*).
1194 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1195 export __cxa_init_primary_exception and std::exception_ptr(void*).
1196 * include/Makefile.am: Add new headers.
1197 * include/Makefile.in: Regenerate.
1198 * libsupc++/Makefile.am: Add new headers.
1199 * libsupc++/Makefile.in: Regenerate.
1200 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1201 * libsupc++/cxxabi_init_exception.h: New header.
1202 (__cxa_init_primary_exception): Declare.
1203 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1204 (__cxa_throw): Use __cxa_init_primary_exception.
1205 * libsupc++/exception (std::exception): Move to ...
1206 * libsupc++/exception.h: New header.
1207 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1208 friend declaration.
1209 (__exception_ptr::__dest_thunk): New function template.
1210 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1211 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1212 create exception_ptr.
1213 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1214 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1215
94f54d47
JW
12162016-08-22 Jonathan Wakely <jwakely@redhat.com>
1217
4c86ffcc
JW
1218 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1219 link to docs for all releases.
1220 * doc/html/*: Regenerate.
1221
94f54d47
JW
1222 PR libstdc++/77322
1223 * doc/xml/manual/intro.xml: Document DR 2062 change.
1224 * include/std/functional (function::swap): Add noexcept.
1225 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1226 * testsuite/20_util/function/77322.cc: New test.
1227
1f4ed04e
JW
12282016-08-19 Jonathan Wakely <jwakely@redhat.com>
1229
71c54f8e
JW
1230 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1231 *-*-solaris* instead of -pthreads.
1232 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1233 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1234 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1235 * testsuite/23_containers/list/pthread1.cc: Likewise.
1236 * testsuite/23_containers/list/pthread5.cc: Likewise.
1237 * testsuite/23_containers/map/pthread6.cc: Likewise.
1238 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1239 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1240 * testsuite/30_threads/shared_mutex/*: Likewise.
1241 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1242 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1243 default_weaktoshared.cc: Likewise.
1244 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1245 mutex_weaktoshared.cc: Likewise.
1246 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1247 dg-require-effective-target instead of using -std option.
1248 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1249 Likewise.
1250 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1251 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1252 Likewise.
1253 * testsuite/30_threads/async/*: Likewise.
1254 * testsuite/30_threads/call_once/*: Likewise.
1255 * testsuite/30_threads/condition_variable/*: Likewise.
1256 * testsuite/30_threads/condition_variable_any/*: Likewise.
1257 * testsuite/30_threads/future/*: Likewise.
1258 * testsuite/30_threads/lock/*: Likewise.
1259 * testsuite/30_threads/mutex/*: Likewise.
1260 * testsuite/30_threads/packaged_task/*: Likewise.
1261 * testsuite/30_threads/promise/*: Likewise.
1262 * testsuite/30_threads/recursive_mutex/*: Likewise.
1263 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1264 * testsuite/30_threads/shared_future/*: Likewise.
1265 * testsuite/30_threads/shared_lock/*: Likewise.
1266 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1267 * testsuite/30_threads/this_thread/*: Likewise.
1268 * testsuite/30_threads/thread/*: Likewise.
1269 * testsuite/30_threads/timed_mutex/*: Likewise.
1270 * testsuite/30_threads/try_lock/*: Likewise.
1271 * testsuite/30_threads/unique_lock/*: Likewise.
1272
e6ee5bfd
JW
1273 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1274 * doc/html/*: Regenerate.
1275 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1276 semantics.
1277 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1278 * testsuite/20_util/not_fn/1.cc: New.
1279 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1280 Remove test for volatile-qualified wrapper.
1281
387edf83
JW
1282 * include/std/atomic (atomic::is_always_lock_free): Define.
1283 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1284 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1285 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1286 * doc/xml/manual/status_cxx2017.xml: Update status.
1287 * doc/html/*: Regenerate.
1288
285ee2fb
JW
1289 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1290 * include/std/tuple (apply): Likewise.
1291 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1292 C++17 mode.
1293 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1294 * testsuite/experimental/type_traits/value.cc: Likewise.
1295
1f4ed04e
JW
1296 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1297 and variant.
1298 * doc/html/*: Regenerate.
1299
a577f786
VV
13002016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1301
1302 Implement the latest proposed resolution of LWG 2756.
1303 * include/std/optional (Optional_base(const _Tp&))
1304 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1305 (optional(nullopt_t)): New.
1306 (optional(_Up&&)): Invoke base directly with in_place
1307 rather than creating a temporary, add default template
1308 argument, change constraints.
1309 (optional(const optional<_Up>&)): Invoke base directly
1310 with in_place, remove unnecessary constraints.
1311 (optional(optional<_Up>&& __t)): Likewise.
1312 (optional(in_place_t, _Args&&...)): New.
1313 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1314 (operator=(_Up&&)): Add default template argument, change constraints.
1315 (operator=(const optional<_Up>&)): Put is_same first in the
1316 constraints.
1317 (operator=(optional<_Up>&&)): Likewise.
1318 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1319 verify assignment from something that can't be perfect-forwarded.
1320 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1321 that a nested optional is disengaged when constructed
1322 from a disengaged element type, and to verify that assignments
1323 from an engaged element type engage the optional.
1324
197c757c
TS
13252016-08-18 Tim Shen <timshen@google.com>
1326
1327 Implement <variant>
1328
1329 * include/Makefile.am: Add new file std/variant.
1330 * include/Makefile.in: Generated from Makefile.am.
1331 * include/bits/enable_special_members.h: Add a tag type to allow
1332 the construction in non-default constructor.
1333 * include/bits/uses_allocator.h: Add convenience traits to
1334 detect constructibility.
1335 * include/std/variant: Implement <variant>.
1336 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1337 * testsuite/20_util/variant/run.cc: Runtime tests.
1338
6cb98491
JW
13392016-08-18 Jonathan Wakely <jwakely@redhat.com>
1340
0b224dcf
JW
1341 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1342 (test.new_tests): Rewrite section.
1343 (tests.dg.directives): New section.
1344 * doc/html/*: Regenerate.
1345
b56d48ef
JW
1346 * doc/xml/manual/test.xml: Improve documentation of test targets.
1347 Document new-abi-baseline, check-debug, and check-parallel targets.
1348
409d5555
JW
1349 * doc/xml/manual/build_hacking.xml: New section on shared library
1350 versioning.
1351
a8107a98
JW
1352 * doc/xml/manual/build_hacking.xml: Improve markup.
1353 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1354 to "Testing".
1355 * doc/xml/faq.xml: Change link text to "Testing".
1356
6cb98491
JW
1357 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1358 dg-options directive.
1359
657213f7
JW
13602016-08-17 Jonathan Wakely <jwakely@redhat.com>
1361
6fbf26cc
JW
1362 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1363 directive and use effective target instead of dg-options.
1364
18a20f3f
JW
1365 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1366 instead of -std in dg-options.
1367 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1368 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1369 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1370 * testsuite/20_util/hash/quality.cc: Likewise.
1371 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1372 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1373 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1374 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1375 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1376 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1377
f7717203
JW
1378 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1379 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1380 * testsuite/27_io/rvalue_streams.cc: Likewise.
1381
e30c6e0c
JW
1382 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1383
e07f4b00
JW
1384 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1385 Remove duplicate dg-options directive.
1386
37144e84
JW
1387 * testsuite/ext/profile/all.cc: Use effective target instead of
1388 -std=gnu++11. Use dg-additional-options instead of repeating options.
1389
8fe79e73
JW
1390 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1391 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1392 instead of dg-excess-errors.
1393
c4296692
JW
1394 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1395 test for C++17.
1396 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1397 * testsuite/experimental/ratio/value.cc: Likewise.
1398 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1399 C++17.
1400 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1401 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1402 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1403 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1404 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1405 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1406 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1407 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1408 * testsuite/tr1/5_numerical_facilities/special_functions/
1409 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1410 C++17 compatibility.
1411
ba364478
JW
1412 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1413 expected signatures for C++14 compatibility.
1414
657213f7
JW
1415 PR libstdc++/77264
1416 * include/bits/basic_string.h (operator=(__sv_type)
1417 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1418 (replace(size_type, size_type, __sv_type))
1419 (replace(const_iterator, const_iterator, __sv_type))
1420 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1421 (compare(size_type, size_type, __sv_type)): Reformat.
1422 (_If_sv): Define helper for SFINAE constaints.
1423 (append(const _Tp&, size_type, size_type))
1424 (assign(const _Tp&, size_type, size_type))
1425 (insert(size_type, const _Tp&, size_type, size_type))
1426 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1427 Use _If_sv.
1428 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1429 SFINAE constraints.
1430 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1431 Likewise.
1432 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1433 Likewise.
1434 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1435 Likewise.
1436 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1437 Likewise.
1438 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1439 Likewise.
1440 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1441 Likewise.
1442 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1443 Likewise.
1444 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1445 Likewise.
1446 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1447 Likewise.
1448 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1449 Likewise.
1450
32917686
JW
14512016-08-16 Jonathan Wakely <jwakely@redhat.com>
1452
1453 PR libstdc++/72847
1454 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1455 pointers to start and end of storage.
1456 * testsuite/23_containers/vector/bool/72847.cc: New test.
1457 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1458 _M_finish after deallocating.
1459 (vector<bool>::_M_fill_insert): Likewise.
1460 (vector<bool>::_M_insert_range): Likewise.
1461 (vector<bool>::_M_insert_aux): Likewise.
1462
5c578ae4
VV
14632016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1464
1465 Implement LWG 2744 and LWG 2754.
1466 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1467 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1468 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1469 Likewise.
1470 (emplace(_Args&&...)): Likewise.
1471 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1472 * include/std/utility: (__is_in_place_type_impl): New.
1473 (__is_in_place_type): Likewise.
1474 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1475 emplace.
1476 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1477 in_place constructor.
1478 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1479 * testsuite/20_util/any/requirements.cc: Add a test for
1480 in_place-constructing a non-default-constructible type.
1481
24299f65
VV
14822016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1483
1484 Add a feature macro for C++17 make_from_tuple.
1485 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1486 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1487 Qualify the call to get<>().
1488 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1489
0657379e
UB
14902016-08-15 Uros Bizjak <ubizjak@gmail.com>
1491
1492 * src/filesystem/ops.cc: Always include ostream and
1493 ext/stdio_filebuf.h.
1494 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1495 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1496 sendfile fails with ENOSYS or EINVAL.
1497
f9657322
TP
14982016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1499
1500 PR libstdc++/72840
1501 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1502 syntax.
1503
ca1ab6be
VV
15042016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1505
1506 Implement C++17 make_from_tuple.
1507 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1508 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1509
68a51b68
VV
15102016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1511
1512 Implement LWG 2758.
1513 * include/bits/basic_string.h
1514 (append(__sv_type, size_type, size_type)): Turn into a template,
1515 change parameter type, constrain, add a conversion to __sv_type
1516 from the dependent parameter type.
1517 (assign(__sv_type, size_type, size_type)): Likewise.
1518 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1519 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1520 Likewise.
1521 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1522 Likewise.
1523 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1524
3e9f67e6
JW
15252016-08-06 Jonathan Wakely <jwakely@redhat.com>
1526
caee9cde
JW
1527 * doc/xml/manual/status_cxx2017.xml: Update status table.
1528 * doc/html/manual/status.html: Regenerate.
1529
ea2f1f49
JW
1530 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1531
6ef835c6
JW
1532 PR libstdc++/72820
1533 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1534 Qualify new operator.
1535 * testsuite/20_util/function/cons/72820.cc: New test.
1536
3e9f67e6
JW
1537 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1538 * doc/html/manual/status.html: Regenerate.
1539 * include/Makefile.am: Add new header.
1540 * include/Makefile.in: Regenerate.
1541 * include/bits/invoke.h: New header.
1542 (__invoke): Make constexpr. Add && to types in exception specification.
1543 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1544 names. Include <bits/invoke.h> and use std::__invoke.
1545 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1546 new header.
1547 (invoke): Add && to types in exception specification.
1548 * include/std/tuple (apply, __apply_impl): Define for C++17.
1549 * testsuite/20_util/tuple/apply/1.cc: New test.
1550 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1551 lineno.
1552
98e6e662
JW
15532016-08-05 Jonathan Wakely <jwakely@redhat.com>
1554
a0b1bf21
JW
1555 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1556 * doc/html/manual/status.html: Regenerate.
1557
5f6acdfb
JW
1558 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1559 * testsuite/20_util/duration_cast/rounding.cc: New test.
1560 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1561 * doc/xml/manual/status_cxx2017.xml: Update status table.
1562 * doc/html/manual/status.html: Regenerate.
1563 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1564 dg-error lineno.
1565 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1566 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1567 * testsuite/20_util/duration/literals/range.cc: Likewise.
1568
98e6e662
JW
1569 * include/std/functional (__callable_functor): Remove.
1570 (_Function_handler::_M_invoke): Use __invoke instead of
1571 __callable_functor or mem_fn.
1572 (function::_Callable): Use lvalue in result_of expression.
1573 (function): Remove TODO comments about allocators.
1574 * testsuite/20_util/function/cons/refqual.cc: New test.
1575
7d2035fa
JW
15762016-08-04 Jonathan Wakely <jwakely@redhat.com>
1577
42183d03
JW
1578 * doc/xml/manual/status_cxx2017.xml: Update status table.
1579 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1580 (__invoke_impl): Remove exception specifications.
1581 (__invoke, invoke): Add exception specifications using
1582 __is_nothrow_callable.
1583 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1584 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1585 (__is_callable, __is_nothrow_callable): New traits.
1586 (is_callable, is_callable_v): New C++17 traits.
1587 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1588 * testsuite/20_util/is_callable/requirements/
1589 explicit_instantiation.cc: New test.
1590 * testsuite/20_util/is_callable/requirements/
1591 explicit_instantiation_ext.cc: New test.
1592 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1593 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1594 test.
1595 * testsuite/20_util/is_callable/value.cc: New test.
1596 * testsuite/20_util/is_callable/value_ext.cc: New test.
1597 * testsuite/20_util/is_nothrow_callable/requirements/
1598 explicit_instantiation.cc: New test.
1599 * testsuite/20_util/is_nothrow_callable/requirements/
1600 explicit_instantiation_ext.cc: New test.
1601 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1602 New test.
1603 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1604 New test.
1605 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1606 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1607
246c618e
JW
1608 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1609 * doc/html/manual/status.html: Regenerate.
1610
9a8e528c
JW
1611 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1612 effective target not dg-options. Move check for feature-test macro to:
1613 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1614 New test.
1615
7d2035fa
JW
1616 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1617 (__invfwd): Adjust.
1618 (__invoke_impl): Remove unused template parameters.
1619 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1620 parameter.
1621 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1622 and test __invoke extension for C++11.
1623
27631a25
JW
16242016-08-03 Jonathan Wakely <jwakely@redhat.com>
1625
c7fdbdcd
JW
1626 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1627 Define feature-test macro.
1628 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1629 for the macro.
1630
f21f4463
JW
1631 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1632 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1633 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1634 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1635 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1636
32eaac9c
JW
1637 * include/std/utility (as_const): Define.
1638 * testsuite/20_util/as_const/1.cc: New test.
1639 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1640
b7dabce5
JW
1641 * include/bits/shared_ptr.h (owner_less): Add default template
1642 argument.
1643 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1644 specialization.
1645 (owner_less<void>): Define specialization.
1646 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1647 Update value.
1648 * testsuite/20_util/owner_less/void.cc: New test.
1649 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1650
068c8ac1
JW
1651 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1652 Define feature-test macro.
1653 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1654 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1655 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1656 (__cpp_lib_type_trait_variable_templates): Define.
1657
0bd9bdb4
JW
1658 * include/bits/stl_function.h: Remove commented-out macro.
1659 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1660 Define feature-test macro.
1661 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1662
f8571e51
JW
1663 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1664 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1665 true.
1666 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1667 do #error for C++17.
1668 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1669 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1670 * include/tr1/bessel_function.tcc: Likewise.
1671 * include/tr1/beta_function.tcc: Likewise.
1672 * include/tr1/cmath: Likewise.
1673 * include/tr1/ell_integral.tcc: Likewise.
1674 * include/tr1/exp_integral.tcc: Likewise.
1675 * include/tr1/gamma.tcc: Likewise.
1676 * include/tr1/hypergeometric.tcc: Likewise.
1677 * include/tr1/legendre_function.tcc: Likewise.
1678 * include/tr1/modified_bessel_func.tcc: Likewise.
1679 * include/tr1/poly_hermite.tcc: Likewise.
1680 * include/tr1/poly_laguerre.tcc: Likewise.
1681 * include/tr1/riemann_zeta.tcc: Likewise.
1682 * include/tr1/special_function_util.h: Likewise.
1683 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1684
27631a25
JW
1685 * include/std/type_traits (has_trivial_default_constructor): Remove.
1686 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1687 * testsuite/20_util/has_trivial_copy_assign/requirements/
1688 explicit_instantiation.cc: Remove test.
1689 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1690 line number.
1691 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1692 Likewise.
1693 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1694 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1695 explicit_instantiation.cc: Likewise.
1696 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1697 typedefs.cc: Likewise.
1698 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1699 * testsuite/20_util/has_trivial_default_constructor/requirements/
1700 explicit_instantiation.cc: Likewise.
1701 * testsuite/20_util/has_trivial_default_constructor/requirements/
1702 typedefs.cc: Likewise.
1703 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1704 Likewise.
1705 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1706 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1707 and has_trivial_copy_assign are not defined.
1708 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1709 tests.
1710 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1711 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1712 dg-error line number.
1713 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1714 Likewise.
1715
69332dba
JW
17162016-08-02 Jonathan Wakely <jwakely@redhat.com>
1717
589a30d1
JW
1718 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1719 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1720 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1721 Likewise.
1722 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1723 Likewise.
1724 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1725 Likewise.
1726 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1727 Likewise.
1728 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1729 Likewise.
1730 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1731 Likewise.
1732
8bcd00bb
JW
1733 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1734 comments.
1735
a4e1011c
JW
1736 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1737 dg-error to relevant line.
1738 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1739 Likewise.
1740 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1741
64dde682
JW
1742 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1743
807bd096
JW
1744 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1745 options are present that aren't valid for C.
1746 * testsuite/abi/header_cxxabi.c: Likewise.
1747
8c65cd30
JW
1748 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1749 check_value.cc: Do not add special functions to namespace std in TR1
1750 test.
1751
196c9e7a
JW
1752 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1753 run for C++11 and later.
1754 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1755 Likewise.
1756 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1757 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1758 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1759 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1760 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1761 Likewise.
1762 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1763 Likewise.
1764 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1765 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1766 Likewise.
1767 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1768 Likewise.
1769 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1770 Likewise.
1771 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1772 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1773 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1774 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1775 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1776 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1777 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1778 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1779 Likewise.
1780 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1781 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1782 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1783 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1784 Likewise.
1785 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1786 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1787 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1788 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1789 Likewise.
1790 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1791 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1792 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1793 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1794 Likewise.
1795 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1796 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1797 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1798 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1799 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1800 Likewise.
1801 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1802 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1803 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1804 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1805 Likewise.
1806 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1807 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1808 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1809 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1810 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1811 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1812 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1813 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1814 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1815 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1816 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1817 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1818 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1819 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1820 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1821 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1822 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1823 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1824 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1825 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1826 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1827 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1828 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1829 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1830 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1831 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1832 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1833 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1834 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1835 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1836 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1837 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1838 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1839 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1840 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1841 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1842 Likewise.
1843 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1844 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1845 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1846 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1847 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1848 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1849 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1850 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1851 Likewise.
1852 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1853 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1854 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1855 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1856 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1857 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1858
69332dba
JW
1859 * testsuite/tr1/5_numerical_facilities/special_functions/
1860 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1861 of [[gnu::unused]].
1862 * testsuite/tr1/5_numerical_facilities/special_functions/
1863 09_cyl_bessel_j/check_value.cc: Likewise.
1864 * testsuite/tr1/5_numerical_facilities/special_functions/
1865 10_cyl_bessel_k/check_value.cc: Likewise.
1866 * testsuite/tr1/5_numerical_facilities/special_functions/
1867 11_cyl_neumann/check_value.cc: Likewise.
1868 * testsuite/tr1/5_numerical_facilities/special_functions/
1869 21_sph_bessel/check_value.cc: Likewise.
1870 * testsuite/tr1/5_numerical_facilities/special_functions/
1871 23_sph_neumann/check_value.cc: Likewise.
1872
e1539627
RO
18732016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1874
1875 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1876 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1877 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1878 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1879 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1880 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1881
c1b6948e
JW
18822016-08-02 Jonathan Wakely <jwakely@redhat.com>
1883
e877144d
JW
1884 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1885 test if -flto used.
1886
c1b6948e
JW
1887 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1888 additional flags for compiling libtestc++.a objects.
1889
9b46e4d6
JW
18902016-08-01 Jonathan Wakely <jwakely@redhat.com>
1891
92d58dee
JW
1892 * include/bits/basic_string.h (data() const): Update comment.
1893 (data()): Add non-const overload for C++17.
1894 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1895 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1896
0f86525a
JW
1897 * include/bits/basic_string.tcc: Disable explicit instantiation
1898 declarations for C++17.
1899
9839ff60
JW
1900 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1901 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1902 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1903 Likewise.
1904 * testsuite/26_numerics/headers/cmath/
1905 c99_classification_macros_c++11.cc: Likewise.
1906 * testsuite/26_numerics/headers/cmath/
1907 c99_classification_macros_c++98.cc: Likewise.
1908 * testsuite/26_numerics/headers/cmath/
1909 c99_classification_macros_c.cc: Likewise.
1910
cbcc9fe8
JW
1911 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1912 for different construct/destroy counts in C++98 mode.
1913
74811472
JW
1914 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1915
a02a61ee
JW
1916 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1917 later.
1918 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1919 Likewise.
1920
98b5fb3c
JW
1921 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1922 C++98-compatible initialization for array.
1923
6f3b8891
JW
1924 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1925 unused header and variable from compile-only test.
1926 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1927 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1928 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1929 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1930 Likewise.
1931
2ab794eb
JW
1932 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1933 Remove duplicate dg-options directive.
1934
4d16871b
JW
1935 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1936 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1937
e3509835
JW
1938 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1939 linker options from compile-only tests.
1940 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1941 Likewise.
1942
9b46e4d6
JW
1943 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1944 supported for C++11 and later.
1945 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1946 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1947
77c3c27e
UB
19482016-08-01 Uros Bizjak <ubizjak@gmail.com>
1949
1950 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1951
f245e3a0
JW
19522016-07-31 Jonathan Wakely <jwakely@redhat.com>
1953
c4da1da2
JW
1954 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1955 compile-only test.
1956
9d5b70b0
JW
1957 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1958 Ensure test is compiled with optimization.
1959
ee628057
JW
1960 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1961 Adjust dg-prune-output pattern for error in C++98 mode.
1962
d23d1bee
JW
1963 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1964 run for C++11 or later.
1965
f2738d6c
JW
1966 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1967 test to not rely on GNU extension (escaped normal characters in POSIX
1968 BRE). Enable tests for other strings which are now supported.
1969
77f3d979
JW
1970 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1971 c++11 instead of setting -std=gnu++14.
1972
3c040fa4
JW
1973 PR libstdc++/72745
1974 * include/std/array (get): Use positive message for static assertions.
1975 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1976 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1977 specialization for invalid indices, with static assertion.
1978 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1979
f245e3a0
JW
1980 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1981 dg-error to relevant line.
1982 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1983 Likewise.
1984 * testsuite/23_containers/forward_list/requirements/dr438/
1985 assign_neg.cc: Likewise.
1986 * testsuite/23_containers/forward_list/requirements/dr438/
1987 constructor_1_neg.cc: Likewise.
1988 * testsuite/23_containers/forward_list/requirements/dr438/
1989 constructor_2_neg.cc: Likewise.
1990 * testsuite/23_containers/forward_list/requirements/dr438/
1991 insert_neg.cc: Likewise.
1992 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1993 Likewise.
1994 * testsuite/26_numerics/random/linear_congruential_engine/
1995 requirements/non_uint_neg.cc: Likewise.
1996 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1997 Likewise. Also test for std::atomic_address.
1998
8c914227
VV
19992016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
2000
2001 Add missing variable traits, fix testsuite failures.
2002 * include/bits/uses_allocator.h (uses_allocator_v): New.
2003 * include/std/functional (is_bind_expression_v, is_placeholder_v):
2004 Likewise.
2005 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2006 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
2007 * testsuite/20_util/duration/literals/range.cc: Likewise.
2008 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
2009 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
2010 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
2011 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
2012 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
2013 Likewise.
2014 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
2015 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2016 New.
2017
7523c5eb
JW
20182016-07-31 Jonathan Wakely <jwakely@redhat.com>
2019
2f297149
JW
2020 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
2021 not test 128-bit types.
2022 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2023 * testsuite/20_util/is_integral/value.cc: Likewise.
2024 * testsuite/20_util/is_signed/value.cc: Likewise.
2025 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2026 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
2027 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
2028 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2029 Likewise.
2030 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2031 Likewise.
2032
7523c5eb
JW
2033 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
2034
137422c8
VV
20352016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
2036
2037 Implement C++17 variable templates for type traits.
2038 * include/std/chrono (treat_as_floating_point_v): New.
2039 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
2040 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
2041 (ratio_greater_equal_v): Likewise.
2042 * include/std/system_error (is_error_code_enum_v)
2043 (is_error_condition_enum_v): Likewise.
2044 * include/std/tuple (tuple_size_v): Likewise.
2045 * type_traits (conjunction_v, disjunction_v, negation_v)
2046 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
2047 (is_array_v, is_pointer_v, is_lvalue_reference_v)
2048 (is_rvalue_reference_v, is_member_object_pointer_v)
2049 (is_member_function_pointer_v, is_enum_v, is_union_v)
2050 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
2051 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
2052 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
2053 (is_trivially_copyable_v, is_standard_layout_v)
2054 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
2055 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
2056 (is_constructible_v, is_default_constructible_v)
2057 (is_copy_constructible_v, is_move_constructible_v)
2058 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
2059 (is_destructible_v, is_trivially_constructible_v)
2060 (is_trivially_default_constructible_v)
2061 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
2062 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
2063 (is_trivially_move_assignable_v, is_trivially_destructible_v)
2064 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
2065 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
2066 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
2067 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
2068 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
2069 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
2070 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
2071 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2072 Likewise.
2073 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
2074 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2075 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2076
0c4c4909
AS
20772016-07-29 Andreas Schwab <schwab@linux-m68k.org>
2078
2079 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2080 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2081 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2082
fe97ccec
JW
20832016-07-29 Jonathan Wakely <jwakely@redhat.com>
2084
13ec6e5e
JW
2085 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
2086 * doc/html/manual/abi.html: Regenerate.
2087
62589e99
JW
2088 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
2089 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
2090 symbols.
2091 * configure: Regenerate.
2092 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2093
fe97ccec
JW
2094 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2095 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
2096 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
2097 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
2098 Likewise.
2099 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
2100 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
2101 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
2102
2de6b254
JW
21032016-07-28 Jonathan Wakely <jwakely@redhat.com>
2104
1a2196e4
JW
2105 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
2106 Adjust dg-prune-output pattern for error in C++98 mode.
2107 * testsuite/23_containers/deque/requirements/dr438/
2108 constructor_1_neg.cc: Likewise.
2109 * testsuite/23_containers/deque/requirements/dr438/
2110 constructor_2_neg.cc: Likewise.
2111 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
2112 Likewise.
2113 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
2114 Likewise.
2115 * testsuite/23_containers/list/requirements/dr438/
2116 constructor_1_neg.cc: Likewise.
2117 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
2118 Likewise.
2119 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
2120 Likewise.
2121 * testsuite/23_containers/vector/requirements/dr438/
2122 constructor_1_neg.cc: Likewise.
2123 * testsuite/23_containers/vector/requirements/dr438/
2124 constructor_2_neg.cc: Likewise.
2125 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
2126 Likewise.
2127
e539b4ff
JW
2128 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
2129 for different construct/destroy counts in C++98 mode.
2130
c3c2f973
JW
2131 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
2132 dg-options to dg-additional-options so that default options are used.
2133 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
2134 Likewise.
2135 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
2136 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
2137 Likewise.
2138 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
2139 Use dg-additional-options instead of repeating the common options.
2140
2de6b254
JW
2141 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
2142 dg-do compile directive.
2143 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
2144 dg-do directive.
2145 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
2146
ca8f2cb1
VV
21472016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
2148
2149 Implement std::string_view and P0254r2,
2150 Integrating std::string_view and std::string.
2151 * include/Makefile.am: Add string_view and string_view.tcc
2152 to the exported headers.
2153 * include/Makefile.in: Likewise.
2154 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
2155 (__sv_type): New.
2156 (basic_string(__sv_type, const _Alloc&)): Likewise.
2157 (operator=(__sv_type)): Likewise.
2158 (operator __sv_type()): Likewise.
2159 (operator+=(__sv_type)): Likewise.
2160 (append(__sv_type __sv)): Likewise.
2161 (append(__sv_type, size_type, size_type)): Likewise.
2162 (assign(__sv_type)): Likewise.
2163 (assign(__sv_type, size_type, size_type)): Likewise.
2164 (insert(size_type, __sv_type)): Likewise.
2165 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
2166 (replace(size_type, size_type, __sv_type)): Likewise.
2167 (replace(size_type, size_type, __sv_type, size_type, size_type)):
2168 Likewise.
2169 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
2170 (find(__sv_type, size_type)): Likewise.
2171 (rfind(__sv_type, size_type)): Likewise.
2172 (find_first_of(__sv_type, size_type)): Likewise.
2173 (find_last_of(__sv_type, size_type)): Likewise.
2174 (find_first_not_of(__sv_type, size_type)): Likewise.
2175 (find_last_not_of(__sv_type, size_type)): Likewise.
2176 (compare(__sv_type)): Likewise.
2177 (compare(size_type, size_type, __sv_type)): Likewise.
2178 (compare(size_type, size_type, __sv_type, size_type, size_type)):
2179 Likewise.
2180 * include/bits/string_view.tcc: New.
2181 * include/std/string_view: Likewise.
2182 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2183 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2184 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2185 Likewise.
2186 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2187 Likewise.
2188 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2189 Likewise.
2190 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2191 Likewise.
2192 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2193 Likewise.
2194 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2195 Likewise.
2196 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2197 Likewise.
2198 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2199 Likewise.
2200 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2201 Likewise.
2202 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2203 Likewise.
2204 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2205 Likewise.
2206 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2207 Likewise.
2208 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2209 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2210 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2211 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2212 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2213 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2214 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2215 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2216 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2217 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2218 Likewise.
2219 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2220 Likewise.
2221 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2222 Likewise.
2223 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2224 Likewise.
2225 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2226 Likewise.
2227 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2228 Likewise.
2229 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2230 Likewise.
2231 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2232 Likewise.
2233 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2234 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2235 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2236 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2237 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2238 Likewise.
2239 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2240 Likewise.
2241 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2242 Likewise.
2243 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2244 Likewise.
2245 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2246 Likewise.
2247 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2248 Likewise.
2249 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2250 Likewise.
2251 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2252 Likewise.
2253 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2254 Likewise.
2255 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2256 Likewise.
2257 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2258 Likewise.
2259 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2260 Likewise.
2261 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2262 Likewise.
2263 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2264 Likewise.
2265 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2266 Likewise.
2267 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2268 Likewise.
2269 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2270 Likewise.
2271 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2272 Likewise.
2273 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2274 Likewise.
2275 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2276 Likewise.
2277 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2278 Likewise.
2279 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2280 Likewise.
2281 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2282 Likewise.
2283 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2284 Likewise.
2285 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2286 Likewise.
2287 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2288 Likewise.
2289 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2290 Likewise.
2291 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2292 Likewise.
2293 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2294 Likewise.
2295 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2296 Likewise.
2297 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2298 Likewise.
2299 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2300 Likewise.
2301 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2302 Likewise.
2303 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2304 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2305 Likewise.
2306 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2307 Likewise.
2308 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2309 Likewise.
2310 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2311 Likewise.
2312 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2313 Likewise.
2314 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2315 Likewise.
2316 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2317 Likewise.
2318 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2319 Likewise.
2320 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2321 Likewise.
2322 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2323 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2324
427f68c6
JW
23252016-07-27 Jonathan Wakely <jwakely@redhat.com>
2326
2327 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2328
a837417c
GC
23292016-07-25 Georeth Chow <georeth2010@gmail.com>
2330
2331 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2332 _S_concat enumerator.
2333 * testsuite/ext/rope/6.cc: New test.
2334
19bb30c0
JW
23352016-07-25 Jonathan Wakely <jwakely@redhat.com>
2336
2337 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2338 std::mt19937, std::thread and std::atomic to simplify test.
2339 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2340
960637ac
JW
23412016-07-22 Jonathan Wakely <jwakely@redhat.com>
2342
8cab3d18
JW
2343 PR libstdc++/71964
2344 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2345 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2346 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2347 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2348 * testsuite/23_containers/set/allocator/71964.cc: New test.
2349
960637ac
JW
2350 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2351 delete[] instead of delete.
2352
22620c14
JW
23532016-07-21 Jonathan Wakely <jwakely@redhat.com>
2354
8b649cd3
JW
2355 * include/experimental/propagate_const (propagate_const::__t): Rename
2356 to _M_t and remove comment. Qualify std::move and std::forward.
2357 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2358
509b778f
JW
2359 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2360 Define sized deallocation function.
2361 * testsuite/util/testsuite_new_operators.h:
2362 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2363 deallocation function.
2364
e93a101f
JW
2365 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2366 reads past the end of strings.
2367 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2368 Likewise.
2369 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2370 invalid array accesses.
2371 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2372 Fix read past the end of string.
2373 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2374
0a024155
JW
2375 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2376 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2377
22620c14
JW
2378 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2379 leak) memory for arguments to placement delete.
2380 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2381 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2382 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2383 Likewise.
2384
18407bfb
JW
23852016-07-20 Jonathan Wakely <jwakely@redhat.com>
2386
09a855ae
JW
2387 * doc/xml/manual/intro.xml: Document DR 2684 status.
2388 * doc/html/*: Regenerate.
2389
e87b7d52
JW
2390 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2391 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2392 (atomic_uint64_t): Define (LWG 2441).
2393 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2394 lines.
2395 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2396 the new types.
2397 * doc/xml/manual/intro.xml: Document DR 2441 status.
2398
07c772ed
JW
2399 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2400 to use perfect forwarding (LWG 2328).
2401 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2402 * doc/xml/manual/intro.xml: Document DR 2328 status.
2403
18407bfb
JW
2404 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2405 static objects for catching nullptr as pointer to member types.
2406
40f3e913
VV
24072016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2408
2409 Clean up optional's comments.
2410 * include/std/optional: Remove incorrect section headers
2411 from comments when redundant, replace bare section
2412 headers with more descriptive comments.
2413
479d0ed5
JW
24142016-07-15 Jonathan Wakely <jwakely@redhat.com>
2415
4f5f9962
JW
2416 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2417 * include/bits/move.h: Likewise.
2418 * include/bits/postypes.h: Likewise.
2419 * include/debug/bitset: Likewise.
2420 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2421 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2422 comment.
2423 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2424 * testsuite/util/thread/all.h: Likewise.
2425
d1129d45
JW
2426 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2427 and adjust comment.
2428
479d0ed5
JW
2429 PR c++/58796
2430 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2431 nullptr match handlers of pointer type.
2432
4db1cb44
ESR
24332016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2434
2435 Implement C++17 P0025 clamp.
2436 * include/bits/algorithmfwd.h: Declare clamp overloads.
2437 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2438 * testsuite/25_algorithms/clamp/1.cc: New test.
2439 * testsuite/25_algorithms/clamp/2.cc: New test.
2440 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2441 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2442 1.cc: New test.
2443 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2444 pod.cc: New test.
2445
1ec0f763
VV
24462016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2447
2448 Fix the constraints for any's assignment operator template to properly
2449 reject assignment from a non-copyable lvalue.
2450 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2451 type for is_copy_constructible,
2452 * testsuite/20_util/any/requirements.cc: Add a test for
2453 non-copyable lvalues.
2454
0a2bf188
JW
24552016-07-14 Jonathan Wakely <jwakely@redhat.com>
2456
ea5ec6b7
JW
2457 * include/experimental/functional: Include <parallel/algorithm> in
2458 Parallel Mode.
2459
47d5cb3c
JW
2460 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2461 for std::search.
2462
0a2bf188
JW
2463 PR libstdc++/70716
2464 * include/bits/forward_list.h (forward_list): Update doxygen comments
2465 to reflect allocator propagation semantics. Remove ambiguous
2466 statements about data being lost.
2467 * include/bits/stl_deque.h (deque): Likewise.
2468 * include/bits/stl_list.h (list): Likewise.
2469 * include/bits/stl_map.h (map): Likewise.
2470 * include/bits/stl_multimap.h (multimap): Likewise.
2471 * include/bits/stl_multiset.h (multiset): Likewise.
2472 * include/bits/stl_set.h (set): Likewise.
2473 * include/bits/stl_vector.h (vector): Likewise.
2474 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2475 Likewise.
2476 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2477 Likewise.
2478
25a69162
VV
24792016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2480
2481 Implement P0032R3, Homogeneous interface for variant, any and optional,
2482 for the parts concerning any and optional.
2483 * include/std/any (_Storage()): Make constexpr and have it
2484 initialize _M_ptr.
2485 (any()): Make constexpr.
2486 (any(const any&)): Adjust.
2487 (any(any&&)): Likewise.
2488 (__any_constructible_t): New.
2489 (any(_ValueType&&)): Constrain.
2490 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2491 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2492 Likewise.
2493 (~any()): Adjust.
2494 (operator=(const any&)): Likewise.
2495 (operator=(any&&)): Likewise.
2496 (operator=(_ValueType&&)): Constrain.
2497 (emplace(_Args&&...)): New.
2498 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2499 (clear()): Remove.
2500 (reset()): New.
2501 (swap(any&)): Adjust.
2502 (empty()): Remove.
2503 (has_value()): New.
2504 (type()): Adjust.
2505 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2506 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2507 (make_any(_Args&&...)): Likewise.
2508 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2509 * include/std/optional (in_place_t, in_place): Remove.
2510 (bad_optional_access): Add a comment referring to LEWG 72.
2511 (emplace(_Args&&...)): Constrain.
2512 (has_value()): New.
2513 (reset()): Likewise.
2514 (make_optional(_Args&&...)): Likewise.
2515 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2516 * include/std/utility (in_place_tag): New.
2517 (__in_place, __in_place_type, __in_place_index): Likewise.
2518 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2519 (in_place(__in_place*)): Likewise.
2520 (in_place(__in_place_type<_Tp>*)): Likewise.
2521 (in_place(__in_place_index<_Idx>*)): Likewise.
2522 * testsuite/20_util/any/assign/1.cc: Adjust.
2523 * testsuite/20_util/any/assign/emplace.cc: New.
2524 * testsuite/20_util/any/assign/self.cc: Adjust.
2525 * testsuite/20_util/any/cons/1.cc: Likewise.
2526 * testsuite/20_util/any/cons/in_place.cc: New.
2527 * testsuite/20_util/any/make_any.cc: Likewise.
2528 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2529 * testsuite/20_util/any/misc/swap.cc: Likewise.
2530 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2531 * testsuite/20_util/any/requirements.cc: New.
2532 * testsuite/20_util/in_place/requirements.cc: Likewise.
2533 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2534 * testsuite/20_util/optional/in_place.cc: Likewise.
2535 * testsuite/20_util/optional/make_optional.cc: Add tests for
2536 the new overloads of make_optional.
2537
c0d31471
VV
25382016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2539
2540 Implement P0307R2, Making Optional Greater Equal Again.
2541 * include/experimental/optional (_Has_addressof): Fix the comment.
2542 * include/std/optional (_Has_addressof): Likewise.
2543 (operator=(_Up&&)): Constrain.
2544 (operator=(const optional<_Up>&)): Likewise.
2545 (operator=(optional<_Up>&&)): Likewise.
2546 (__optional_relop_t): New.
2547 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2548 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2549 Constrain and make transparent.
2550 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2551 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2552 Constrain and make transparent.
2553 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2554 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2555 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2556 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2557 (operator!=(const optional<_Tp>&, _Tp const&)):
2558 Constrain and make transparent.
2559 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2560 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2561 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2562 (operator>(const optional<_Tp>&, const _Tp&)):
2563 Constrain and make transparent.
2564 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2565 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2566 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2567 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2568 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2569 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2570 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2571 * testsuite/20_util/optional/relops/1.cc: Likewise.
2572 * testsuite/20_util/optional/relops/2.cc: Likewise.
2573 * testsuite/20_util/optional/relops/3.cc: Likewise.
2574 * testsuite/20_util/optional/relops/4.cc: Likewise.
2575 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2576 that optional's relops are transparent and don't synthesize
2577 operators. Also test that assignment sfinaes.
2578
260d92cd
JW
25792016-07-13 Jonathan Wakely <jwakely@redhat.com>
2580
e383deac
JW
2581 PR libstdc++/71856
2582 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2583 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2584 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2585 on _GLIBCXX_ASSERTIONS.
2586 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2587 Include <unistd.h> for sleep.
2588 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2589 * include/parallel/merge.h: Likewise.
2590 * include/parallel/multiway_merge.h: Likewise.
2591 * include/parallel/partition.h: Likewise.
2592 * include/parallel/queue.h: Likewise.
2593 * include/parallel/sort.h: Likewise.
2594 * testsuite/25_algorithms/headers/algorithm/
2595 parallel_algorithm_assert.cc: New.
2596
17f8dc93
JW
2597 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2598 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2599 Forward to different overload.
2600
260d92cd
JW
2601 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2602 static.
2603
2d60da10
JW
26042016-07-13 Jonathan Wakely <jwakely@redhat.com>
2605
2606 Revert "Add non-const overload of std::string::data()".
2607
05505e9d
VV
26082016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2609
86c0ec1d
VV
2610 Implement P0307R2, Making Optional Greater Equal Again.
2611 * include/experimental/optional (_Has_addressof): Fix the comment.
2612 * include/std/optional (_Has_addressof): Likewise.
2613 (operator=(_Up&&)): Constrain.
2614 (operator=(const optional<_Up>&)): Likewise.
2615 (operator=(optional<_Up>&&)): Likewise.
2616 (__optional_relop_t): New.
2617 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2618 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2619 Constrain and make transparent.
2620 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2621 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2622 Constrain and make transparent.
2623 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2624 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2625 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2626 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2627 (operator!=(const optional<_Tp>&, _Tp const&)):
2628 Constrain and make transparent.
2629 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2630 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2631 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2632 (operator>(const optional<_Tp>&, const _Tp&)):
2633 Constrain and make transparent.
2634 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2635 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2636 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2637 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2638 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2639 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2640 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2641 * testsuite/20_util/optional/relops/1.cc: Likewise.
2642 * testsuite/20_util/optional/relops/2.cc: Likewise.
2643 * testsuite/20_util/optional/relops/3.cc: Likewise.
2644 * testsuite/20_util/optional/relops/4.cc: Likewise.
2645 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2646 that optional's relops are transparent and don't synthesize
2647 operators. Also test that assignment sfinaes.
2648
ceea48fc
JW
26492016-07-13 Jonathan Wakely <jwakely@redhat.com>
2650
2651 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2652 New function.
2653 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2654 instead of _M_data().
2655 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2656 Likewise.
2657 (append(const basic_string&)): Likewise.
2658 (append(const basic_string&, size_type, size_type)): Likewise.
2659 (assign(const basic_string&, size_type, size_type)): Likewise.
2660 (insert(size_type, const basic_string&)): Likewise.
2661 (insert(size_type, const basic_string&, size_type, size_type)):
2662 Likewise.
2663 (replace(size_type, size_type, const basic_string&, size_type,
2664 size_type)): Likewise.
2665 (replace(__const_iterator, __const_iterator, const basic_string&)):
2666 Likewise.
2667 (c_str(), data()): Use c_str() instead of _M_data().
2668 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2669 (compare(const basic_string&)): Use data() instead of _M_data().
2670 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2671 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2672 Pass raw pointers to _S_copy.
2673 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2674 _S_assign.
2675 (find(const _CharT*, size_type, size_type)): Use data instead of
2676 _M_data().
2677 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2678 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2679 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2680
17b31c05
JW
26812016-07-12 Jonathan Wakely <jwakely@redhat.com>
2682
7cbadfdc
JW
2683 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2684 * doc/xml/manual/intro.xml: Document DR 2458 status.
2685 * doc/html*: Regenerate.
2686
1b24fb4c
JW
2687 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2688 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2689 Only include <array>.
2690 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2691 Likewise.
1b1c16e0 2692 * doc/xml/manual/intro.xml: Document LWG 2212 support.
1b24fb4c
JW
2693 * doc/html*: Regenerate.
2694
17b31c05
JW
2695 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2696 Add testcase from LWG 2164.
2697
76225d2c
FD
26982016-07-11 François Dumont <fdumont@gcc.gnu.org>
2699
2700 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2701 to _M_realloc_insert.
2702 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2703 (_M_realloc_insert): Declare new function.
2704 (_M_emplace_back_aux): Remove definition.
2705 * include/bits/vector.tcc (emplace_back(_Args...)):
2706 Use _M_realloc_insert.
2707 (insert(const_iterator, const value_type&)): Likewise.
2708 (_M_insert_rval, _M_emplace_aux): Likewise.
2709 (_M_emplace_back_aux): Remove declaration.
2710 (_M_realloc_insert): Define.
2711 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2712 Adjust expected results for emplacing an lvalue with reallocation.
2713
435e56fb
VV
27142016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2715
2716 Implement std::optional.
2717 * include/Makefile.am: Add optional to exported headers.
2718 * include/Makefile.in: Likewise.
2719 * include/std/optional: New.
2720 * testsuite/20_util/optional/typedefs.cc: Likewise.
2721 * testsuite/20_util/optional/relops/2.cc: Likewise.
2722 * testsuite/20_util/optional/relops/3.cc: Likewise.
2723 * testsuite/20_util/optional/relops/4.cc: Likewise.
2724 * testsuite/20_util/optional/relops/5.cc: Likewise.
2725 * testsuite/20_util/optional/relops/1.cc: Likewise.
2726 * testsuite/20_util/optional/relops/6.cc: Likewise.
2727 * testsuite/20_util/optional/nullopt.cc: Likewise.
2728 * testsuite/20_util/optional/in_place.cc: Likewise.
2729 * testsuite/20_util/optional/make_optional.cc: Likewise.
2730 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2731 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2732 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2733 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2734 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2735 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2736 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2737 * testsuite/20_util/optional/cons/default.cc: Likewise.
2738 * testsuite/20_util/optional/cons/move.cc: Likewise.
2739 * testsuite/20_util/optional/cons/value.cc: Likewise.
2740 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2741 * testsuite/20_util/optional/requirements.cc: Likewise.
2742 * testsuite/20_util/optional/observers/2.cc: Likewise.
2743 * testsuite/20_util/optional/observers/3.cc: Likewise.
2744 * testsuite/20_util/optional/observers/4.cc: Likewise.
2745 * testsuite/20_util/optional/observers/5.cc: Likewise.
2746 * testsuite/20_util/optional/observers/1.cc: Likewise.
2747 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2748 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2749 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2750 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2751 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2752 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2753 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2754 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2755 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2756 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2757 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2758 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2759 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2760 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2761 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2762 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2763 * testsuite/20_util/optional/swap/1.cc: Likewise.
2764
d81102f4
JW
27652016-07-08 Jonathan Wakely <jwakely@redhat.com>
2766
2767 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2768
9fc0faf0
JW
27692016-07-07 Jonathan Wakely <jwakely@redhat.com>
2770
2771 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2772 * doc/html/*: Regenerate.
2773
52e86221
VV
27742016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2775
2776 Implement std::any.
2777 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2778 * include/Makefile.in: Likewise.
2779 * include/std/any: New.
2780 * testsuite/20_util/any/assign/1.cc: Likewise.
2781 * testsuite/20_util/any/assign/2.cc: Likewise.
2782 * testsuite/20_util/any/assign/self.cc: Likewise.
2783 * testsuite/20_util/any/cons/1.cc: Likewise.
2784 * testsuite/20_util/any/cons/2.cc: Likewise.
2785 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2786 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2787 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2788 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2789 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2790 * testsuite/20_util/any/misc/swap.cc: Likewise.
2791 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2792 * testsuite/20_util/any/observers/type.cc: Likewise.
2793 * testsuite/20_util/any/typedefs.cc: Likewise.
2794
3042e708
VV
27952016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2796
2797 Add a new header for diagnosing the use of C++17 facilities
2798 in pre-C++17 modes.
2799 * include/bits/c++17_warning.h: New.
2800
6ffe8548
VV
28012016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2802
2803 Implement LWG 2451, optional<T> should 'forward' T's
2804 implicit conversions.
2805 * include/experimental/optional (__is_optional_impl, __is_optional):
2806 New.
2807 (optional()): Make constexpr and default.
2808 (optional(_Up&&), optional(const optional<_Up>&),
2809 optional(optional<_Up>&& __t): New.
2810 (operator=(_Up&&)): Constrain.
2811 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2812 * testsuite/experimental/optional/cons/value.cc:
2813 Add tests for the functionality added by LWG 2451.
2814 * testsuite/experimental/optional/cons/value_neg.cc: New.
2815
7d4f48b5
VV
28162016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2817
2818 Implement LWG 2509,
2819 any_cast doesn't work with rvalue reference targets and cannot
2820 move with a value target.
2821 * include/experimental/any (any(_ValueType&&)): Constrain and
2822 add an overload that doesn't forward.
2823 (any_cast(any&&)): Constrain and add an overload that moves.
2824 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2825 the functionality added by LWG 2509.
2826
097e8994
FD
28272016-07-04 François Dumont <fdumont@gcc.gnu.org>
2828
2829 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2830 New test.
2831 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2832 test.
2833
9958c7eb
JW
28342016-07-04 Jonathan Wakely <jwakely@redhat.com>
2835
2836 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2837 Define inline. Forward to _M_emplace_aux.
2838 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2839 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2840 (_Temporary_value): New RAII type using allocator to construct/destroy.
2841 (_S_insert_aux_assign): Remove.
2842 (_M_insert_aux): Make non-variadic.
2843 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2844 Use _Temporary_value.
2845 (emplace(const_iterator, _Args&&...)): Remove definition.
2846 (_M_insert_rval, _M_emplace_aux): Define.
2847 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2848 (_M_fill_insert): Use _Temporary_value.
2849 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2850 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2851 Adjust expected results for emplacing an lvalue with reallocation.
2852 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2853 expected results to account for construction/destruction of temporary
2854 using allocator.
2855 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2856
e12880f9
VV
28572016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2858
2859 PR libstdc++/71313
2860 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2861 Call remove_all for children of a directory.
2862 * testsuite/experimental/filesystem/operations/create_directories.cc:
2863 Adjust.
2864
6c539f2e
FD
28652016-07-02 François Dumont <fdumont@gcc.gnu.org>
2866
2867 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2868 dg-error line numbers.
2869 * testsuite/23_containers/array/tuple_interface/
2870 tuple_element_debug_neg.cc: Likewise.
2871 * testsuite/25_algorithms/lexicographical_compare/debug/
2872 irreflexive_neg.cc: Remove.
2873
72fb6bae
TP
28742016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2875
2876 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2877 than specific target.
2878
dc448fa0
FD
28792016-06-27 François Dumont <fdumont@gcc.gnu.org>
2880
2881 PR libstdc++/71640
2882 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2883 friend declaration.
2884
e615c24c
FD
28852016-06-23 François Dumont <fdumont@gcc.gnu.org>
2886
2887 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2888 zero-size array.
2889
0609abda
TS
28902016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2891
2892 * configure.host: Remove mep-* support.
2893
8466af06
TS
28942016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2895
2896 * configure: Regenerate.
2897 * configure.host: Remove support for knetbsd.
2898 * crossconfig.m4: Likewise.
2899
29dbb034
FD
29002016-06-20 François Dumont <fdumont@gcc.gnu.org>
2901
2902 PR libstdc++/71181
2903 * include/tr1/hashtable_policy.h
2904 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2905 dereferenceable to avoid check on lower_bound result.
2906 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2907 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2908 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2909 Always return a value greater than input value. Set _M_next_resize to
2910 max value when reaching highest prime number.
2911 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2912 being now useless.
2913 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2914 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2915 (test02): New.
2916 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2917 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2918 Fix indentation.
2919
3ebacabd
JW
29202016-06-17 Jonathan Wakely <jwakely@redhat.com>
2921
2922 PR libstdc++/71545
2923 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2924 Remove irreflexive checks.
2925 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2926 binary_search): Likewise.
2927 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2928 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2929 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2930 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2931 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2932 Add constructor from array.
2933
bd2ee798
FD
29342016-06-16 François Dumont <fdumont@gcc.gnu.org>
2935
2936 * include/debug/debug.h
2937 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2938 (__glibcxx_requires_subscript): Move...
2939 * include/debug/assertions.h: ...here and add __builtin_expect.
2940 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2941 * include/bits/stl_deque.h
2942 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2943 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2944 (std::deque<>::back()): Likewise.
2945 (std::deque<>::pop_front()): Likewise.
2946 (std::deque<>::pop_back()): Likewise.
2947 (std::deque<>::swap(deque&)): Add allocator check.
2948 * include/bits/stl_vector.h
2949 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2950 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2951 (std::vector<>::back()): Likewise.
2952 (std::vector<>::pop_back()): Likewise.
2953 (std::vector<>::swap(vector&)): Add allocator check.
2954
6b9539e2
DK
29552016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2956
2957 Provide swappable traits (p0185r1)
2958 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2959 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2960 is_nothrow_swappable_v, is_swappable_with_v,
2961 is_nothrow_swappable_with_v): New.
2962 * include/bits/stl_pair.h: Use it as per p0185r1.
2963 * include/bits/stl_queue.h: Likewise.
2964 * include/bits/stl_stack.h: Likewise.
2965 * include/bits/unique_ptr.h: Likewise.
2966 * include/std/tuple: Likewise.
2967 * include/std/array: Likewise. Fix zero-size member swap.
2968 * include/bits/hashtable.h: Use __and_.
2969 * testsuite/20_util/is_nothrow_swappable/requirements/
2970 explicit_instantiation.cc: Change test options to std=gnu++17.
2971 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2972 Likewise.
2973 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2974 * testsuite/20_util/is_swappable/requirements/
2975 explicit_instantiation.cc: Likewise.
2976 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2977 * testsuite/20_util/is_swappable/value.cc: Likewise.
2978 * testsuite/20_util/is_nothrow_swappable/requirements/
2979 explicit_instantiation_ext.cc: New.
2980 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2981 New.
2982 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2983 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2984 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2985 explicit_instantiation.cc: New.
2986 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2987 New.
2988 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2989 * testsuite/20_util/is_swappable/requirements/
2990 explicit_instantiation_ext.cc: New.
2991 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2992 * testsuite/20_util/is_swappable/value.h: New.
2993 * testsuite/20_util/is_swappable/value_ext.cc: New.
2994 * testsuite/20_util/is_swappable_with/requirements/
2995 explicit_instantiation.cc: New.
2996 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2997 * testsuite/20_util/is_swappable_with/value.cc: New.
2998 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2999 dg-error line numbers.
3000 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
3001 Likewise.
3002
0ae207e9
JW
30032016-06-16 Jonathan Wakely <jwakely@redhat.com>
3004
33ac58d5
JW
3005 * include/std/array: Remove trailing whitespace.
3006 * include/std/atomic: Likewise.
3007 * include/std/bitset: Likewise.
3008 * include/std/chrono: Likewise.
3009 * include/std/complex: Likewise.
3010 * include/std/condition_variable: Likewise.
3011 * include/std/fstream: Likewise.
3012 * include/std/functional: Likewise.
3013 * include/std/future: Likewise.
3014 * include/std/iomanip: Likewise.
3015 * include/std/iosfwd: Likewise.
3016 * include/std/istream: Likewise.
3017 * include/std/limits: Likewise.
3018 * include/std/ratio: Likewise.
3019 * include/std/scoped_allocator: Likewise.
3020 * include/std/sstream: Likewise.
3021 * include/std/stdexcept: Likewise.
3022 * include/std/string: Likewise.
3023 * include/std/system_error: Likewise.
3024 * include/std/thread: Likewise.
3025 * include/std/tuple: Likewise.
3026 * include/std/type_traits: Likewise.
3027 * include/std/utility: Likewise.
3028 * include/std/valarray: Likewise.
3029 * include/std/vector: Likewise.
3030
0ae207e9
JW
3031 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
3032 new overloaded functions.
3033 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
3034 to avoid creating a redundant temporary.
3035 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
3036 test.
3037
d7e16fc5
FD
30382016-06-15 François Dumont <fdumont@gcc.gnu.org>
3039
3040 * include/bits/stl_deque.h
3041 (std::deque<>::operator=): Call _M_assign_aux.
3042 (std::deque<>::assign(initializer_list<>)): Likewise.
3043 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3044 (std::deque<>::insert(const_iterator, initializer_list<>)):
3045 Call _M_range_insert_aux.
3046 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
3047 Likewise.
3048 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
3049 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
3050 * include/bits/deque.tcc
3051 (std::deque<>::operator=): Call _M_range_insert_aux.
3052 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
3053 Likewise.
3054 * include/bits/stl_vector.h
3055 (std::vector<>::operator=): Call _M_assign_aux.
3056 (std::vector<>::assign(initializer_list<>)): Likewise.
3057 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
3058 (std::vector<>::insert(const_iterator, initializer_list<>)):
3059 Call _M_range_insert.
3060 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
3061
373c0095
FD
30622016-06-07 François Dumont <fdumont@gcc.gnu.org>
3063
3064 * include/std/tuple (_Head_base<>): Default specialization condition at
3065 type declaration.
3066
dbc6221f
VV
30672016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
3068
3069 Support allocators in tuples of zero size.
3070 * include/std/tuple (tuple<>::tuple(),
3071 tuple<>::tuple(allocator_arg_t, const _Alloc&),
3072 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
3073 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
3074
94229fb6
JW
30752016-06-06 Jonathan Wakely <jwakely@redhat.com>
3076
3077 PR libstdc++/71320
3078 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
3079 Add or remove permissions according to perms argument.
3080 * testsuite/experimental/filesystem/operations/permissions.cc: New
3081 test.
3082
7a667453
VV
30832016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3084
3085 Protect allocator-overloads of tuple-from-tuple constructors
3086 from cases that would create dangling references.
3087 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3088 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
3089 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
3090 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
3091
4acc3634
GP
30922016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
3093
3094 * doc/xml/manual/backwards_compatibility.xml: Adjust
3095 lists.debian.org link to https.
3096 * doc/html/manual/backwards.html: Regenerate.
3097
9020909e
JW
30982016-05-27 Jonathan Wakely <jwakely@redhat.com>
3099
3100 * doc/xml/manual/abi.xml: Adjust URL to use https.
3101 * doc/html/manual/*: Regenerate.
3102
b7021006
VV
31032016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
3104
3105 PR libstdc++/66338
3106 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
3107 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
3108 check for _NotSameTuple.
3109 * include/std/tuple (_TMCT): New.
3110 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
3111 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
3112 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3113 const tuple<_UElements...>&)): Likewise.
3114 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
3115 tuple<_UElements...>&&)): Likewise.
3116 * testsuite/20_util/tuple/cons/66338.cc: New.
3117
834f4c43
JW
31182016-05-25 Jonathan Wakely <jwakely@redhat.com>
3119
c42d2288
JW
3120 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
3121 * configure: Regenerate.
3122 * config.h.in: Regenerate.
3123
834f4c43
JW
3124 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
3125 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
3126 Remove const qualification on function. Replace
3127 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
3128 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
3129 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
3130
732eb076
FD
31312016-05-24 François Dumont <fdumont@gcc.gnu.org>
3132
3133 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
3134 * include/bits/hashtable_policy.h
3135 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
3136 having load factor management.
3137 (_Mask_range_hashing): New.
3138 (__clp2): New.
3139 (_Power2_rehash_policy): New.
3140 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
3141 partial specializations only depend on whether iterators are constant
3142 or not.
3143 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
3144 test new hash policy.
3145 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
3146 Likewise.
3147 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
3148 Likewise.
3149 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
3150 Likewise.
3151 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
3152 Likewise.
3153 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
3154 New.
3155 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
3156 using the new hash policy.
3157 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
3158
8be062c6
JW
31592016-05-24 Jonathan Wakely <jwakely@redhat.com>
3160
3161 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
3162
447caf82
FD
31632016-05-23 François Dumont <fdumont@gcc.gnu.org>
3164
3165 * include/debug/safe_iterator.h
3166 (_Safe_iterator<>::operator->()): Implement using underlying iterator
3167 operator ->.
3168 * include/debug/safe_local_iterator.h
3169 (_Safe_local_iterator<>::operator->()): Likewise.
3170
11f8114b
TP
31712016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3172
3173 * testsuite/experimental/memory_resource/1.cc: Add required argument
3174 to dg-require-atomic-builtins.
3175
541a9b10
JW
31762016-05-13 Jonathan Wakely <jwakely@redhat.com>
3177
3178 PR libstdc++/71073
3179 * include/debug/bitset: Add #pragma GCC system_header.
3180 * include/debug/deque: Likewise.
3181 * include/debug/list: Likewise.
3182 * include/debug/map: Likewise.
3183 * include/debug/set: Likewise.
3184 * include/debug/string: Likewise.
3185 * include/debug/unordered_map: Likewise.
3186 * include/debug/unordered_set: Likewise.
3187 * include/debug/vector: Likewise.
3188 * include/debug/functions.h: Adjust whitespace.
3189
068b220e
JW
31902016-05-12 Jonathan Wakely <jwakely@redhat.com>
3191
3192 PR libstdc++/71081
3193 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3194
3d73ae6e
JW
31952016-05-11 Jonathan Wakely <jwakely@redhat.com>
3196
3197 PR libstdc++/71049
3198 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3199 exception constructors with __sso_string parameters.
3200
d7187f9e
JW
32012016-05-10 Jonathan Wakely <jwakely@redhat.com>
3202
7f99d40a
JW
3203 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3204 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3205 Test begin and end functions.
3206 * testsuite/experimental/filesystem/iterators/
3207 recursive_directory_iterator.cc: Likewise.
3208
6fe673ad
JW
3209 PR libstdc++/71038
3210 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3211 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3212
77a87b2a
JW
3213 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3214 Overload operator* to move from rvalues.
3215
f9a39467
JW
3216 PR libstdc++/71036
3217 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3218 * testsuite/experimental/filesystem/operations/create_directory.cc:
3219 New test.
3220
6f0800d4
JW
3221 PR libstdc++/71037
3222 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3223 base path to exception.
3224 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3225 paths contained in exception.
3226
f10b2e1c
JW
3227 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3228 using declaration.
3229
d7187f9e
JW
3230 PR libstdc++/71005
3231 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3232 New type.
3233 (directory_iterator::operator++(int)): Return proxy.
3234 (recursive_directory_iterator::operator++(int)): Likewise.
3235 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3236 Test post-increment.
3237 * testsuite/experimental/filesystem/iterators/
3238 recursive_directory_iterator.cc: Likewise.
3239
7972e246
JW
32402016-05-09 Jonathan Wakely <jwakely@redhat.com>
3241
3242 PR libstdc++/71004
3243 * testsuite/experimental/filesystem/iterators/
3244 recursive_directory_iterator.cc: Fix test02 to not call member
3245 functions on invalid iterator, and use VERIFY not assert.
3246
fb334765
VV
32472016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3248
3249 Avoid endless run-time recursion for copying single-element
3250 tuples where the element type is by-value constructible
3251 from any type.
3252 * include/std/tuple (_NotSameTuple): New.
3253 * include/std/tuple (tuple(_UElements&&...): Use it.
3254 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3255
e4cce0ce
JW
32562016-05-09 Jonathan Wakely <jwakely@redhat.com>
3257
3258 PR libstdc++/71004
3259 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3260 Initialize scalar member variables in default constructor.
3261 * testsuite/experimental/filesystem/iterators/
d7187f9e 3262 recursive_directory_iterator.cc: Test default construction.
e4cce0ce 3263
40436d81
RO
32642016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3265
3266 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3267
f5c40ce2
JW
32682016-05-05 Jonathan Wakely <jwakely@redhat.com>
3269
3270 * testsuite/experimental/filesystem/path/native/string.cc: Add
3271 dg-require-filesystem-ts directive.
3272
d9cb3e75
JW
32732016-05-04 Jonathan Wakely <jwakely@redhat.com>
3274
3275 PR libstdc++/70940
3276 * include/experimental/memory_resource
3277 (__resource_adaptor_imp::do_allocate): Do not default-construct
3278 rebound allocator.
3279 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3280 allocator_traits to get pointer type.
3281 (__null_memory_resource::do_allocate): Remove unused parameters.
3282 (__null_memory_resource::do_deallocate): Likewise.
3283 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3284 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3285 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3286 move to ...
3287 * testsuite/experimental/memory_resource/1.cc: Here.
3288 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3289 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3290
f92ab29f
CG
32912016-04-29 Chris Gregory <czipperz@gmail.com>
3292
3293 * config/*: Remove trailing whitespace.
3294 * src/*: Likewise.
3295 * testsuite/tr1/*: Likewise.
3296 * testsuite/util/*: Likewise.
3297
272b2ce4
JW
32982016-04-28 Jonathan Wakely <jwakely@redhat.com>
3299
9f9eb84e
JW
3300 PR libstdc++/70766
3301 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3302 __addressof.
3303 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3304 Likewise.
3305 * include/std/atomic (atomic<_Tp>): Likewise.
3306 * include/std/shared_mutex (shared_lock): Likewise.
3307 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3308 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3309 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3310 * testsuite/29_atomics/atomic/70766.cc: New test.
3311 * testsuite/30_threads/shared_lock/70766.cc: New test.
3312
272b2ce4
JW
3313 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3314 __detail::_Insert): Improve comments.
3315
45e20696
JW
33162016-04-27 Jonathan Wakely <jwakely@redhat.com>
3317
3318 PR libstdc++/70767
3319 * include/std/limits: Update comments about DRs.
3320 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3321 numeric_limits<const volatile _Tp>): Define unconditionally.
3322
a635cdb2
JW
33232016-04-24 Jonathan Wakely <jwakely@redhat.com>
3324
3325 PR libstdc++/70762
3326 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3327 static counter to return a different path on every call.
3328
216f7526
TS
33292016-04-22 Tim Shen <timshen@google.com>
3330
3331 PR libstdc++/70745
3332 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3333 Fix the match_not_bow and match_not_eow behavior.
3334 * testsuite/28_regex/regression.cc: Add testcase.
3335
a1e1ec76
JW
33362016-04-20 Jonathan Wakely <jwakely@redhat.com>
3337
3338 PR libstdc++/69703
3339 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3340 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3341
9c476ad4
JW
33422016-04-19 Jonathan Wakely <jwakely@redhat.com>
3343
29ca91f7 3344 PR libstdc++/69703
a1e1ec76 3345 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
29ca91f7
JW
3346 Override endianness bit in mode.
3347 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3348 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3349 that little_endian mode is ignored.
3350 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3351
14905251
JW
3352 PR libstdc++/70609
3353 * src/filesystem/ops.cc (close_fd): New function.
3354 (do_copy_file): Set permissions before copying file contents. Check
3355 result of closing file descriptors. Don't copy streambuf when file
3356 is empty.
3357 (copy(const path&, const path&, copy_options, error_code&)): Use
3358 lstat for source file when copy_symlinks is set.
3359 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3360
9c476ad4
JW
3361 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3362 operator~ operator&=, operator|=, operator^=): Add noexcept to
3363 overloaded operators for copy_options, perms and directory_options.
3364 * src/filesystem/ops.cc (make_file_type, make_file_status,
3365 is_not_found_errno, file_time): Add noexcept.
3366
d855ad89
ESR
33672016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3368
3369 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3370
8dc1e574
JW
33712016-04-18 Jonathan Wakely <jwakely@redhat.com>
3372
0cded43d
JW
3373 PR libstdc++/41759
3374 * include/bits/random.h: Reword static assertion messages to state
3375 positive conditions.
3376 * include/bits/random.tcc: Likewise.
3377 * include/bits/uniform_int_dist.h: Likewise.
3378 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3379 patterns.
3380
90751aa7
JW
3381 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3382
351a5f81
JW
3383 * config/cpu/sh/atomicity.h: Fix typo in comment.
3384
b05cf382
JW
3385 PR libstdc++/70294
3386 * include/std/thread (operator<, operator==): Move definitions to
3387 namespace-scope.
3388 * testsuite/30_threads/thread/id/70294.cc: New test.
3389
4ed6e524
JW
3390 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3391 -Wno-pedantic to dg-options.
3392 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3393 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3394 to dg-options.
3395 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3396 Remove extra semi-colon.
3397 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3398 Always supply second argument to static_assert.
3399 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3400 semi-colon.
3401 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3402 dg-options.
3403 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3404 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3405 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3406 alignof when operand is an object not a type.
3407 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3408 * testsuite/decimal/make-decimal.cc: Likewise.
3409 * testsuite/experimental/type_traits/value.cc: Always supply second
3410 argument to static_assert.
3411 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3412 __int128 types.
3413
abb6e0a1
JW
3414 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3415 internal header.
3416 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3417 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3418 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3419 Likewise. Add licence and change to compile-only test.
3420
6b6147dd
JW
3421 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3422 unused parameter.
3423 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3424
8dc1e574
JW
3425 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3426 warnings.
3427
80dbaf98
ESR
34282016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3429
3430 * include/bits/specfun.h: Trivial comment misspelling.
3431
9f285ccb
JM
34322016-04-14 Jason Merrill <jason@redhat.com>
3433
3434 Revert Jonathan's empty ABI change from yesterday.
3435
342fac95
MS
34362016-04-13 Martin Sebor <msebor@redhat.com>
3437
3438 PR c++/69517
3439 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3440 upper bound is positive.
3441
a6297ab5
JW
34422016-04-13 Jonathan Wakely <jwakely@redhat.com>
3443
3444 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3445 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3446 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3447 of functions taking empty structs by value. Add a template parameter
3448 to overloads without hints. Rename overloads with hints to
3449 _M_emplace_hint.
3450 (_Hashtable::_M_erase(true_type, const_iterator),
3451 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3452 by reordering parameters.
3453 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3454 _M_emplace_hint instead of _M_emplace.
3455 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3456 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3457 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3458 __shared_ptr): Likewise.
3459 * include/bits/stl_algo.h (replace_if): Likewise.
3460 * include/bits/stl_pair.h (piecewise_construct_t,
3461 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3462 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3463 __uses_alloc0): Likewise.
3464 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3465 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3466 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3467 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3468 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3469 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3470 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3471
0c39f36d
ESR
34722016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3473
3474 Document C++17/TR29124 C++ Special Math Functions.
3475 * include/bits/specfun.h: Add Doxygen markup.
3476
6da8b931
JW
34772016-04-07 Jonathan Wakely <jwakely@redhat.com>
3478
3479 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3480
49a52ebc
EB
34812016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3482
3483 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3484 * src/Makefile.in: Regenerate.
3485
87cec93e
JW
34862016-04-05 Jonathan Wakely <jwakely@redhat.com>
3487
d2aee115
JW
3488 PR libstdc++/70554
3489 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3490 __atomic_fetch_add for bool.
3491 * configure: Regenerate.
3492
d5ec69f3
JW
3493 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3494
87cec93e
JW
3495 PR libstdc++/70503
3496 * src/c++11/thread.cc (execute_native_thread_routine,
3497 execute_native_thread_routine_compat): Give internal linkage.
3498 * testsuite/30_threads/thread/70503.cc: New test.
3499
7b3318c4
VV
35002016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3501
3502 PR libstdc++/70437
3503 * include/bits/stl_pair.h (_ConstructiblePair,
3504 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3505 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3506 for same-type cases.
3507 * testsuite/20_util/pair/70437.cc: New.
3508
00e6c25a
JW
35092016-03-24 Jonathan Wakely <jwakely@redhat.com>
3510
3511 PR libstdc++/69945
3512 * config/abi/pre/gnu.ver: Add new symbol.
3513 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3514 * testsuite/18_support/free_eh_pool.cc: New test.
3515
bfd84e6b
BE
35162016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3517
3518 * include/Makefile.am (install-freestanding-headers): Add
3519 concept_check.h and move.h to the installed headers.
3520 * include/Makefile.in: Regenerated.
3521 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3522 freestanding implementations.
3523 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3524 that this macro has no effect for freestanding implementations.
3525 * doc/html/manual/using_macros.html: Likewise.
3526
86715b09
JW
35272016-02-24 Jonathan Wakely <jwakely@redhat.com>
3528
3529 PR libstdc++/69939
3530 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3531
9aee022e
JW
35322016-02-23 Jonathan Wakely <jwakely@redhat.com>
3533
be9967e8
JW
3534 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3535 * doc/html/*: Regenerate.
3536
9aee022e
JW
3537 PR libstdc++/69893
3538 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3539 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3540 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3541 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3542 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3543 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3544 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3545 Likewise.
3546 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3547 namespace before including TR1 headers.
3548 * testsuite/tr1/headers/c++200x/math.cc: New test.
3549
5f6dd593
BE
35502016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3551
3552 PR libstdc++/69881
3553 * include/c_global/cstdarg: Undefine __need___va_list.
3554 * include/c_global/cstddef: Undefine all kinds of __need_*.
3555
244901a5
TS
35562016-02-16 Tim Shen <timshen@google.com>
3557
3558 PR libstdc++/69794
3559 * include/bits/regex_scanner.h: Add different special character
3560 sets for grep and egrep regex.
3561 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3562 * testsuite/28_regex/regression.cc: Add new testcase.
3563
cc07da33
JW
35642016-02-08 Jonathan Wakely <jwakely@redhat.com>
3565
2158532f
JW
3566 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3567 added 'constexpr' in previous commit.
3568 * configure: Regenerate.
3569
cc07da33
JW
3570 PR libstdc++/48891
3571 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3572 checks for all targets except *-*-solaris2.* and ensure we find the
3573 libc math.h header not our own.
3574 * configure: Regenerate.
3575
acc04646
DV
35762016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3577
3578 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3579 New file. Copied over from s390-linux-gnu.
3580
dbcda3ee
JW
35812016-02-04 Jonathan Wakely <jwakely@redhat.com>
3582
3555173f
JW
3583 PR libstdc++/69626
3584 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3585 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3586 * config.h.in: Regenerate.
3587 * configure: Regenerate.
3588 * testsuite/21_strings/c_strings/char/69626.cc: New.
3589
15ebf379
JW
3590 * doc/html/index.html: Regenerate.
3591
dbcda3ee
JW
3592 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3593 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3594 * doc/html/*: Regenerate.
3595
571512d5
BE
35962016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3597
3598 PR libstdc++/69581
3599 * include/c_compatibility/math.h: Move header guards.
3600 * include/c_compatibility/stdlib.h: Likewise.
3601
f597d5f7
JW
36022016-01-29 Jonathan Wakely <jwakely@redhat.com>
3603
3604 PR libstdc++/69506
3605 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3606
69b0daeb
JDA
36072016-01-28 John David Anglin <danglin@gcc.gnu.org>
3608
3609 PR libstdc++/69450
3610 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3611 isinf and isnan functions into two independent checks. Check on hpux.
3612 * config.h.in: Regenerate.
3613 * configure: Regenerate.
3614 * include/c_global/cmath (isinf(double), isnan(double)): Use
3615 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3616 respectively.
3617
8dc781e4
JJ
36182016-01-27 Jakub Jelinek <jakub@redhat.com>
3619
3620 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3621
bae87f7f
JW
36222016-01-27 Jonathan Wakely <jwakely@redhat.com>
3623
3624 PR libstdc++/69295
3625 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3626 -ffp-contract=off, and -ffloat-store to disable excess precision.
3627 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3628 -ffp-contract=off.
3629
f1d591e8
JW
36302016-01-26 Jonathan Wakely <jwakely@redhat.com>
3631
3632 PR libstdc++/69478
3633 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3634 random_access_iterator_tag>): Check is_move_assignable when moving.
3635 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3636 Likewise.
3637 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3638 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3639 * testsuite/25_algorithms/move/69478.cc: New.
3640 * testsuite/25_algorithms/move_backward/69478.cc: new.
3641
8964d2a0
AP
36422016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3643
3644 * include/c_compatibility/stdlib.h: Include wide character related
3645 definitions only when they are available in cstdlib.
3646
2944621e
JW
36472016-01-25 Jonathan Wakely <jwakely@redhat.com>
3648
3649 PR libstdc++/69464
3650 * include/Makefile.am: Add new header.
3651 * include/Makefile.in: Regenerate.
3652 * include/bits/random.h (uniform_int_distribution): Move to
3653 bits/uniform_int_dist.h.
3654 * include/bits/random.tcc (uniform_int_distribution::operator(),
3655 uniform_int_distribution::__generate_impl): Likewise.
3656 * include/bits/uniform_int_dist.h: New header.
3657 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3658 <bits/uniform_int_dist.h> instead of <random>.
3659 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3660 move_iterators/1.cc: Include correct header for uninitialized_copy.
3661 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3662 move_iterators/1.cc: Likewise.
3663 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3664 header for vector.
3665 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3666
3676c087
JDA
36672016-01-23 John David Anglin <danglin@gcc.gnu.org>
3668
3669 PR libstdc++/69446
3670 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3671
02dc2419
ESR
36722016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3673
3674 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3675 * include/c_compatibility/math.h: Import the TR29124 functions
3676 into the global namespace.
3677 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3678 xfail and make compile-only.
3679 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3680 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3681 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3682 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3683 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3684 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3685 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3686 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3687 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3688 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3689 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3690 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3691 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3692 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3693 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3694 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3695 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3696 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3697 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3698 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3699
350fe282
JW
37002016-01-22 Jonathan Wakely <jwakely@redhat.com>
3701
d1fb377c
JW
3702 PR libstdc++/69116
3703 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3704 define result_type for types which can be safely used with valarrays.
3705 * testsuite/26_numerics/valarray/69116.cc: New.
3706
350fe282
JW
3707 PR libstdc++/69413
3708 * config/os/gnu-linux/os_defines.h: Define
3709 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3710 * include/c_global/cmath (isinf, isnan): Check it.
3711 * doc/xml/manual/internals.xml: Document it.
3712 * doc/html/*: Regenerate.
3713
ab56cbed
JW
37142016-01-21 Jonathan Wakely <jwakely@redhat.com>
3715
3716 PR libstdc++/69406
3717 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3718 * include/ext/type_traits.h: Likewise.
3719 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3720 for presence of C headers.
3721 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3722 dg-error line number.
3723 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3724 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3725 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3726
7e10bcfa
TR
37272016-01-20 Torvald Riegel <triegel@redhat.com>
3728
3729 PR libstdc++/69310
3730 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3731
eac437bf
JW
37322016-01-20 Jonathan Wakely <jwakely@redhat.com>
3733
3f93466a
JW
3734 PR libstdc++/60401
3735 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3736 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3737 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3738 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3739 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3740 Add using declarations.
3741 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3742
eac437bf
JW
3743 PR libstdc++/69386
3744 * include/c_global/ccomplex: Ensure C++ language linkage.
3745 * include/c_global/cmath: Likewise.
3746 * include/c_global/cstdlib: Likewise.
3747 * include/c_global/ctgmath: Likewise.
3748 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3749
96e19ada
JW
37502016-01-19 Jonathan Wakely <jwakely@redhat.com>
3751
3752 PR libstdc++/14608
3753 PR libstdc++/60401
3754 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3755 --enable-cheaders=c_global configs.
3756 * include/Makefile.in: Regenerate.
3757 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3758 test and allow inclusion from C files.
3759 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3760 (at_quick_exit, quick_exit): Add using directives.
3761 * include/c_global/cmath: Use #include_next for math.h.
3762 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3763 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3764 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3765 Remove xfail for most targets.
3766 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3767
9585381a
TR
37682016-01-18 Torvald Riegel <triegel@redhat.com>
3769
3770 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3771 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3772 and move after its definition.
3773 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3774 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3775 __GXX_WEAK__, and only provide transactional clones if
3776 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3777 functions.
3778
f5460595
JW
37792016-01-18 Jonathan Wakely <jwakely@redhat.com>
3780
c91bcffc
JW
3781 PR libstdc++/60637
3782 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3783
d75d9f91 3784 PR libstdc++/69243
9c5ad80e
JW
3785 * include/std/functional (_Function_base::_M_not_empty_function):
3786 Change overloads for pointers to take arguments by value.
3787 * testsuite/20_util/function/cons/57465.cc: Add tests for
3788 pointer-to-member cases.
3789
f5460595
JW
3790 PR libstdc++/69340
3791 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3792 Use macros for exception handling and fix unused parameter warning.
3793
271366f6
JDA
37942016-01-17 John David Anglin <danglin@gcc.gnu.org>
3795
3796 PR libstdc++/68734
3797 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3798
7a5d1d34
TR
37992016-01-17 Torvald Riegel <triegel@redhat.com>
3800
3801 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3802
5445d5bf
L
38032016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3804
3805 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3806 __int128 symbols.
3807
3d076231
JW
38082016-01-15 Jonathan Wakely <jwakely@redhat.com>
3809
d7c1581c
JW
3810 PR libstdc++/69293
3811 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3812 static assertion that type is constructible from the arguments.
3813 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3814 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3815 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3816
3d076231
JW
3817 PR libstdc++/69294
3818 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3819 and isnan on AIX. Quote variables.
3820 * configure: Regenerate.
3821
a04d5fc9
TR
38222016-01-15 Torvald Riegel <triegel@redhat.com>
3823
3824 * include/bits/basic_string.h (basic_string): Declare friends.
3825 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3826 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3827 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3828 length_error, out_of_range, runtime_error, range_error,
3829 underflow_error, overflow_error): Declare members as transaction-safe.
3830 (logic_error, runtime_error): Declare friend functions.
3831 * libsupc++/exception (exception, bad_exception): Declare members as
3832 transaction-safe.
3833 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3834 transaction-safe members of exceptions and helper functions.
3835 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3836 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3837 (CXXABI_1.3.10): New.
3838 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3839 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3840 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3841 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3842 * include/Makefile.in: Regenerate.
3843 * config.h.in: Regenerate.
3844 * configure: Regenerate.
3845 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3846
cebeb718
SE
38472016-01-15 Steve Ellcey <sellcey@imgtec.com>
3848
3849 * include/ext/random.tcc: Use __builtin_isfinite instead of
3850 std::isfinite.
3851
3b07547d
JW
38522016-01-15 Jonathan Wakely <jwakely@redhat.com>
3853
3854 * include/bits/std_mutex.h: Fix Doxygen @file name.
3855
2be75957
ESR
38562016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3857 Jonathan Wakely <jwakely@redhat.com>
3858 Florian Goth <CaptainSifff@gmx.de>
3859
3860 Implement TR29124 C++ special Math Functions.
3861 * include/Makefile.am: Add new headers.
3862 * include/Makefile.in: Regenerate.
3863 * include/bits/specfun.h: New.
3864 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3865 * include/tr1/bessel_function.tcc: Ditto.
3866 * include/tr1/beta_function.tcc: Ditto.
3867 * include/tr1/cmath: Ditto.
3868 * include/tr1/ell_integral.tcc: Ditto.
3869 * include/tr1/exp_integral.tcc: Ditto.
3870 * include/tr1/gamma.tcc: Ditto.
3871 * include/tr1/hypergeometric.tcc: Ditto.
3872 * include/tr1/legendre_function.tcc: Ditto.
3873 * include/tr1/modified_bessel_func.tcc: Ditto.
3874 * include/tr1/poly_hermite.tcc: Ditto.
3875 * include/tr1/poly_laguerre.tcc: Ditto.
3876 * include/tr1/riemann_zeta.tcc: Ditto.
3877 * include/tr1/special_function_util.h: Ditto.
3878 * testsuite/ext/special_functions/conf_hyperg: New.
3879 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3880 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3881 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3882 * testsuite/ext/special_functions/hyperg: New.
3883 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3884 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3885 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3886 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3887 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3888 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3889 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3890 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3891 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3892 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3893 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3894 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3895 * testsuite/special_functions/03_beta/check_nan.cc: New.
3896 * testsuite/special_functions/03_beta/check_value.cc: New.
3897 * testsuite/special_functions/03_beta/compile.cc: New.
3898 * testsuite/special_functions/03_beta/compile_2.cc: New.
3899 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3900 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3901 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3902 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3903 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3904 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3905 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3906 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3907 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3908 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3909 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3910 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3911 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3912 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3913 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3914 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3915 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3916 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3917 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3918 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3919 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3920 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3921 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3922 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3923 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3924 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3925 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3926 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3927 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3928 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3929 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3930 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3931 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3932 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3933 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3934 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3935 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3936 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3937 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3938 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3939 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3940 * testsuite/special_functions/14_expint/check_nan.cc: New.
3941 * testsuite/special_functions/14_expint/check_value.cc: New.
3942 * testsuite/special_functions/14_expint/compile.cc: New.
3943 * testsuite/special_functions/14_expint/compile_2.cc: New.
3944 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3945 * testsuite/special_functions/15_hermite/check_value.cc: New.
3946 * testsuite/special_functions/15_hermite/compile.cc: New.
3947 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3948 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3949 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3950 * testsuite/special_functions/16_laguerre/compile.cc: New.
3951 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3952 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3953 * testsuite/special_functions/17_legendre/check_value.cc: New.
3954 * testsuite/special_functions/17_legendre/compile.cc: New.
3955 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3956 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3957 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3958 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3959 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3960 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3961 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3962 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3963 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3964 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3965 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3966 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3967 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3968 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3969 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3970 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3971 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3972 * testsuite/util/specfun_testcase.h: New.
3973 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3974 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3975 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3976 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3977 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3978 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3979 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3980
39a1d8c8
JW
39812016-01-13 Jonathan Wakely <jwakely@redhat.com>
3982
3983 PR libstdc++/48891
3984 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3985 and isnan functions.
3986 * config.h.in: Regenerate.
3987 * configure: Regenerate.
3988 * include/c_global/cmath (isinf(double), isnan(double))
3989 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3990 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3991
e862906c
RO
39922016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3993
3994 PR libstdc++/66006
3995 * configure.host (abi_baseline_pair): Use separate baseline for
3996 Solaris 11+ and Solaris 10 with gld.
3997 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3998 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3999 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
4000
26b5ace7
DK
40012016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
4002
4003 PR libstdc++/68877
4004 * include/std/type_traits: Following N4511, reimplement __is_swappable
4005 and __is_nothrow_swappable. Move __is_swappable to namespace std,
4006 adjust callers. Use __is_nothrow_swappable in swap.
4007 * include/bits/move.h: Use __is_nothrow_swappable in swap.
4008 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
4009 __is_swappable related tests.
4010 * testsuite/20_util/is_swappable/value.cc: New.
4011 * testsuite/20_util/is_swappable/requirements/
4012 explicit_instantiation.cc: New.
4013 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
4014 * testsuite/25_algorithms/swap/68877.cc: New.
4015
1c3c7c41
JW
40162016-01-12 Jonathan Wakely <jwakely@redhat.com>
4017
bd285a8b
JW
4018 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
4019
1c3c7c41
JW
4020 PR libstdc++/69005
4021 PR libstdc++/69222
4022 * include/std/functional (function::_Invoke): Remove, use result_of.
4023 (function::_Callable): Replace alias template with class template
4024 and use partial specialization instead of _NotSelf alias template.
4025 (function(_Functor)): Add "not self" constraint so that _Callable is
4026 not used while type is incomplete.
4027 * testsuite/20_util/function/69222.cc: New.
4028
1517bc30
JW
40292016-01-11 Jonathan Wakely <jwakely@redhat.com>
4030
4031 PR libstdc++/60976
4032 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
4033 Define partial specialization.
4034 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
4035 destroy members to std::allocator explicit specialization.
4036
e525d78c
JW
40372016-01-08 Jonathan Wakely <jwakely@redhat.com>
4038
8babc12b
JW
4039 * testsuite/26_numerics/headers/cmath/
4040 c99_classification_macros_c++.cc: Rename to ...
4041 * testsuite/26_numerics/headers/cmath/
4042 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
4043 * testsuite/26_numerics/headers/cmath/
4044 c99_classification_macros_c++0x.cc: Rename to ...
4045 * testsuite/26_numerics/headers/cmath/
4046 c99_classification_macros_c++11.cc: Here.
4047
32a8c97f 4048 PR libstdc++/69190
e525d78c
JW
4049 * include/bits/uses_allocator.h: Add missing include.
4050
f885fa89
JW
40512016-01-07 Jonathan Wakely <jwakely@redhat.com>
4052
4053 PR libstdc++/69105
4054 PR libstdc++/69106
4055 PR libstdc++/69114
4056 * include/bits/stl_iterator.h (back_insert_iterator,
4057 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
4058 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
4059 * include/std/future (__future::base::_State_baseV2::__setter):
4060 Likewise.
4061 * include/std/scoped_allocator (__outermost): Likewise.
4062 * testsuite/20_util/scoped_allocator/69114.cc: New.
4063 * testsuite/20_util/uses_allocator/69114.cc: New.
4064 * testsuite/30_threads/promise/69106.cc: New.
4065
0c3e5dd1
JW
40662016-01-06 Jonathan Wakely <jwakely@redhat.com>
4067
373a75fb
JW
4068 PR libstdc++/69092
4069 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
4070 Remove _GLIBCXX_NOEXCEPT.
4071 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
4072
0c3e5dd1
JW
4073 * include/Makefile.am: Adjust.
4074 * include/Makefile.in: Regenerate.
4075 * include/bits/mutex.h: Rename to bits/std_mutex.h.
4076 * include/std/condition_variable: Adjust include.
4077 * include/std/mutex: Likewise.
4078
818ab71a 40792016-01-04 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
4080
4081 Update copyright years.
b4df5e92 4082\f
818ab71a 4083Copyright (C) 2016 Free Software Foundation, Inc.
b4df5e92
JW
4084
4085Copying and distribution of this file, with or without modification,
4086are permitted in any medium without royalty provided the copyright
4087notice and this notice are preserved.