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