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