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