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