2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob517db5662f7034ef5079a59334b68b9f25c50ec8
1 2016-09-05  Tim Shen  <timshen@google.com>
3         * include/std/variant: include bits/move.h for std::addressof.
5 2016-09-05  Mikhail Strelnikov  <mikhail.strelnikov@gmail.com>
7         * include/std/variant (_Variant_storage::_M_storage()): Use std::addressof
8         instead of operator& to take address.
10 2016-09-02  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
12         * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
13         setrlimit on both native and cross targets.
14         * configure: Regenerate.
16 2016-08-31  Jonathan Wakely  <jwakely@redhat.com>
18         * include/bits/shared_ptr.h (_Assignable): New alias template.
19         (shared_ptr::operator=(const shared_ptr<_Tp1>&))
20         (shared_ptr::operator=(shared_ptr<_Tp1>&&))
21         (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
22         _Assignable.
23         * include/bits/shared_ptr_base.h (_Assignable): New alias template.
24         (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
25         (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
26         (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
27         _Assignable.
28         (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
29         (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
30         _Convertible.
31         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
32         match on any line.
33         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
34         * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
35         * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
36         expected errors. Remove unnecessary code.
37         * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
39         * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
40         comparison object.
41         * testsuite/23_containers/set/move_comparison.cc: New test.
43         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
44         New test.
46 2016-08-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
48         PR libstdc++/77395
49         * include/std/type_traits (is_constructible): Forward-declare...
50         (__is_base_to_derived_ref): ...and use here.
51         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
52         * testsuite/20_util/is_constructible/77395.cc: New.
53         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
54         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
55         Likewise.
56         * testsuite/20_util/tuple/77395.cc: New.
58 2016-08-30  Uros Bizjak  <ubizjak@gmail.com>
60         * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
61         directive above dg-require-namedlocale directive.
62         * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
63         * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
64         * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
65         * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
66         * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
68 2016-08-27  Tim Shen  <timshen@google.com>
70         PR libstdc++/77356
71         * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
72         _M_expression_term): Modify to support dash literal.
73         * include/bits/regex_scanner.h: Add dash as a token type to make
74         a different from the mandated dash literal by escaping.
75         * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
76         token in bracket expression parsing.
77         * testsuite/28_regex/regression.cc: Add new testcases.
79 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
81         PR libstdc++/51960
82         * doc/xml/manual/intro.xml: Document DR 2127 change.
83         * doc/html/*: Regenerate.
84         * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
85         (operator++(), operator++(int)): Use injected class name.
86         * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
88         * testsuite/*: Use { target c++11 } or { target c++14 } instead of
89         using -std in dg-options.
91 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
92             Pedro Alves  <palves@redhat.com>
94         * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
95         and restore dg-interpreter-batch-mode.
96         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
97         gdb-dg-runtest instead of dg-runtest.
98         * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
100 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
102         * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
103         precise patterns for basic_string constructors.
104         (GLIBCXX_3.4.23): Export new constructors.
105         * doc/xml/manual/intro.xml: Document LWG 2583 status.
106         * doc/html/*: Regenerate.
107         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
108         (basic_string(const basic_string&, size_type, const Alloc&)): Add
109         new constructor for LWG 2583.
110         (basic_string(const basic_string&, size_type, size_type)): Remove
111         default argument.
112         [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
113         * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
114         * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
115         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
117 2016-08-24  Aditya Kumar  <hiraditya@msn.com>
119         * include/bits/algorithmfwd.h: Remove trailing whitespace.
120         * include/bits/shared_ptr_base.h: Likewise.
122 2016-08-23  Jonathan Wakely  <jwakely@redhat.com>
124         * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
125         * include/profile/array (array): Likewise.
126         (array::swap): Fix exception specification for zero-sized arrays.
128         PR libstdc++/77334
129         * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
130         (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
131         * testsuite/23_containers/map/77334.cc: New test.
133         * doc/xml/manual/using.xml: Remove reference to -pthreads option.
134         * doc/html/*: Regenerate.
136         * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
137         * testsuite/experimental/feat-lib-fund.cc: Likewise.
139         PR libstdc++/71771
140         * include/bits/stl_iterator.h
141         (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
142         define for C++98 mode.
143         (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
144         * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
145         -std=gnu++98.
146         * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
147         * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
148         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
149         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
150         difference operator.
151         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
152         difference operator for C++98.
153         * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
155         * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
156         * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
157         (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
158         * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
159         (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
160         Likewise.
161         * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
162         _GLIBCXX14_CONSTEXPR.
163         (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
164         * include/std/array (array::begin, array::end, array::rbegin)
165         (array::rend, array::cbegin, array:cend, array::crbegin)
166         (array::crend, array::operator[], array::at, array::front)
167         (array::back, array::data): Likewise.
168         * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
169         with separate tests for C++11, C++14, and C++17.
170         * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
171         * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
172         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
174 2016-08-22  Tim Shen  <timshen@google.com>
176         Split _M_dfs() into smaller functions.
177         * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
178         (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
179         (_M_handle_line_end_assertion, _M_handle_word_boundary)
180         (_M_handle_subexpr_lookahead, _M_handle_match)
181         (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
182         Add separate function declarations.
183         * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
185 2016-08-22  Gleb Natapov  <gleb@scylladb.com>
187         PR libstdc++/68297
188         * config/abi/pre/gnu-versioned-namespace.ver: Export
189         __cxa_init_primary_exception and std::exception_ptr(void*).
190         * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
191         export __cxa_init_primary_exception and std::exception_ptr(void*).
192         * include/Makefile.am: Add new headers.
193         * include/Makefile.in: Regenerate.
194         * libsupc++/Makefile.am: Add new headers.
195         * libsupc++/Makefile.in: Regenerate.
196         * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
197         * libsupc++/cxxabi_init_exception.h: New header.
198         (__cxa_init_primary_exception): Declare.
199         * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
200         (__cxa_throw): Use __cxa_init_primary_exception.
201         * libsupc++/exception (std::exception): Move to ...
202         * libsupc++/exception.h: New header.
203         * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
204         friend declaration.
205         (__exception_ptr::__dest_thunk): New function template.
206         (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
207         Use __cxa_allocate_exception and __cxa_init_primary_exception to
208         create exception_ptr.
209         * libsupc++/typeinfo: Include bits/exception.h instead of exception.
210         * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
212 2016-08-22  Jonathan Wakely  <jwakely@redhat.com>
214         * doc/xml/api.xml: Replace hardcoded links for specific versions with
215         link to docs for all releases.
216         * doc/html/*: Regenerate.
218         PR libstdc++/77322
219         * doc/xml/manual/intro.xml: Document DR 2062 change.
220         * include/std/functional (function::swap): Add noexcept.
221         (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
222         * testsuite/20_util/function/77322.cc: New test.
224 2016-08-19  Jonathan Wakely  <jwakely@redhat.com>
226         * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
227         *-*-solaris* instead of -pthreads.
228         * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
229         * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
230         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
231         * testsuite/23_containers/list/pthread1.cc: Likewise.
232         * testsuite/23_containers/list/pthread5.cc: Likewise.
233         * testsuite/23_containers/map/pthread6.cc: Likewise.
234         * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
235         * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
236         * testsuite/30_threads/shared_mutex/*: Likewise.
237         * testsuite/ext/rope/pthread7-rope.cc: Likewise.
238         * testsuite/tr1/2_general_utilities/shared_ptr/thread/
239         default_weaktoshared.cc: Likewise.
240         * testsuite/tr1/2_general_utilities/shared_ptr/thread/
241         mutex_weaktoshared.cc: Likewise.
242         * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
243         dg-require-effective-target instead of using -std option.
244         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
245         Likewise.
246         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
247         * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
248         Likewise.
249         * testsuite/30_threads/async/*: Likewise.
250         * testsuite/30_threads/call_once/*: Likewise.
251         * testsuite/30_threads/condition_variable/*: Likewise.
252         * testsuite/30_threads/condition_variable_any/*: Likewise.
253         * testsuite/30_threads/future/*: Likewise.
254         * testsuite/30_threads/lock/*: Likewise.
255         * testsuite/30_threads/mutex/*: Likewise.
256         * testsuite/30_threads/packaged_task/*: Likewise.
257         * testsuite/30_threads/promise/*: Likewise.
258         * testsuite/30_threads/recursive_mutex/*: Likewise.
259         * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
260         * testsuite/30_threads/shared_future/*: Likewise.
261         * testsuite/30_threads/shared_lock/*: Likewise.
262         * testsuite/30_threads/shared_timed_mutex/*: Likewise.
263         * testsuite/30_threads/this_thread/*: Likewise.
264         * testsuite/30_threads/thread/*: Likewise.
265         * testsuite/30_threads/timed_mutex/*: Likewise.
266         * testsuite/30_threads/try_lock/*: Likewise.
267         * testsuite/30_threads/unique_lock/*: Likewise.
269         * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
270         * doc/html/*: Regenerate.
271         * include/experimental/functional (_Not_fn, not_fn): Match C++17
272         semantics.
273         * include/std/functional (_Not_fn, not_fn): Define for C++17.
274         * testsuite/20_util/not_fn/1.cc: New.
275         * testsuite/experimental/functional/not_fn.cc: Test abstract class.
276         Remove test for volatile-qualified wrapper.
278         * include/std/atomic (atomic::is_always_lock_free): Define.
279         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
280         * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
281         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
282         * doc/xml/manual/status_cxx2017.xml: Update status.
283         * doc/html/*: Regenerate.
285         * include/experimental/tuple (apply): Qualify call to __apply_impl.
286         * include/std/tuple (apply): Likewise.
287         * testsuite/experimental/system_error/value.cc: Fix ambiguities in
288         C++17 mode.
289         * testsuite/experimental/tuple/tuple_size.cc: Likewise.
290         * testsuite/experimental/type_traits/value.cc: Likewise.
292         * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
293         and variant.
294         * doc/html/*: Regenerate.
296 2016-08-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
298         Implement the latest proposed resolution of LWG 2756.
299         * include/std/optional (Optional_base(const _Tp&))
300         (Optional_base(_Tp&&), using _Base::_Base): Remove.
301         (optional(nullopt_t)): New.
302         (optional(_Up&&)): Invoke base directly with in_place
303         rather than creating a temporary, add default template
304         argument, change constraints.
305         (optional(const optional<_Up>&)): Invoke base directly
306         with in_place, remove unnecessary constraints.
307         (optional(optional<_Up>&& __t)): Likewise.
308         (optional(in_place_t, _Args&&...)): New.
309         (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
310         (operator=(_Up&&)): Add default template argument, change constraints.
311         (operator=(const optional<_Up>&)): Put is_same first in the
312         constraints.
313         (operator=(optional<_Up>&&)): Likewise.
314         * testsuite/20_util/optional/assignment/5.cc: Add a test to
315         verify assignment from something that can't be perfect-forwarded.
316         * testsuite/20_util/optional/cons/value.cc: Add tests to verify
317         that a nested optional is disengaged when constructed
318         from a disengaged element type, and to verify that assignments
319         from an engaged element type engage the optional.
321 2016-08-18  Tim Shen  <timshen@google.com>
323         Implement <variant>
325         * include/Makefile.am: Add new file std/variant.
326         * include/Makefile.in: Generated from Makefile.am.
327         * include/bits/enable_special_members.h: Add a tag type to allow
328         the construction in non-default constructor.
329         * include/bits/uses_allocator.h: Add convenience traits to
330         detect constructibility.
331         * include/std/variant: Implement <variant>.
332         * testsuite/20_util/variant/compile.cc: Compile-time tests.
333         * testsuite/20_util/variant/run.cc: Runtime tests.
335 2016-08-18  Jonathan Wakely  <jwakely@redhat.com>
337         * doc/xml/manual/test.xml (test.run.permutations): Expand section.
338         (test.new_tests): Rewrite section.
339         (tests.dg.directives): New section.
340         * doc/html/*: Regenerate.
342         * doc/xml/manual/test.xml: Improve documentation of test targets.
343         Document new-abi-baseline, check-debug, and check-parallel targets.
345         * doc/xml/manual/build_hacking.xml: New section on shared library
346         versioning.
348         * doc/xml/manual/build_hacking.xml: Improve markup.
349         * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
350         to "Testing".
351         * doc/xml/faq.xml: Change link text to "Testing".
353         * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
354         dg-options directive.
356 2016-08-17  Jonathan Wakely  <jwakely@redhat.com>
358         * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
359         directive and use effective target instead of dg-options.
361         * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
362         instead of -std in dg-options.
363         * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
364         * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
365         * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
366         * testsuite/20_util/hash/quality.cc: Likewise.
367         * testsuite/25_algorithms/heap/moveable.cc: Likewise.
368         * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
369         * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
370         * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
371         * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
372         * testsuite/25_algorithms/sort/random_test.cc: Likewise.
374         * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
375         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
376         * testsuite/27_io/rvalue_streams.cc: Likewise.
378         * testsuite/26_numerics/complex/literals/types.cc: Add comment.
380         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
381         Remove duplicate dg-options directive.
383         * testsuite/ext/profile/all.cc: Use effective target instead of
384         -std=gnu++11. Use dg-additional-options instead of repeating options.
386         * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
387         -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
388         instead of dg-excess-errors.
390         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
391         test for C++17.
392         * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
393         * testsuite/experimental/ratio/value.cc: Likewise.
394         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
395         C++17.
396         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
397         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
398         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
399         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
400         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
401         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
402         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
403         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
404         * testsuite/tr1/5_numerical_facilities/special_functions/
405         10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
406         C++17 compatibility.
408         * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
409         expected signatures for C++14 compatibility.
411         PR libstdc++/77264
412         * include/bits/basic_string.h (operator=(__sv_type)
413         (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
414         (replace(size_type, size_type, __sv_type))
415         (replace(const_iterator, const_iterator, __sv_type))
416         (find(__sv_type, size_type), rfind(__sv_type, size_type))
417         (compare(size_type, size_type, __sv_type)): Reformat.
418         (_If_sv): Define helper for SFINAE constaints.
419         (append(const _Tp&, size_type, size_type))
420         (assign(const _Tp&, size_type, size_type))
421         (insert(size_type, const _Tp&, size_type, size_type))
422         (replace(size_type, size_type, const _Tp&, size_type, size_type)):
423         Use _If_sv.
424         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
425         SFINAE constraints.
426         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
427         Likewise.
428         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
429         Likewise.
430         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
431         Likewise.
432         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
433         Likewise.
434         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
435         Likewise.
436         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
437         Likewise.
438         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
439         Likewise.
440         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
441         Likewise.
442         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
443         Likewise.
444         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
445         Likewise.
447 2016-08-16  Jonathan Wakely  <jwakely@redhat.com>
449         PR libstdc++/72847
450         * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
451         pointers to start and end of storage.
452         * testsuite/23_containers/vector/bool/72847.cc: New test.
453         * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
454         _M_finish after deallocating.
455         (vector<bool>::_M_fill_insert): Likewise.
456         (vector<bool>::_M_insert_range): Likewise.
457         (vector<bool>::_M_insert_aux): Likewise.
459 2016-08-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
461         Implement LWG 2744 and LWG 2754.
462         * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
463         (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
464         (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
465         Likewise.
466         (emplace(_Args&&...)): Likewise.
467         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
468         * include/std/utility: (__is_in_place_type_impl): New.
469         (__is_in_place_type): Likewise.
470         * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
471         emplace.
472         * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
473         in_place constructor.
474         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
475         * testsuite/20_util/any/requirements.cc: Add a test for
476         in_place-constructing a non-default-constructible type.
478 2016-08-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
480         Add a feature macro for C++17 make_from_tuple.
481         * include/std/tuple (__cpp_lib_make_from_tuple): New.
482         (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
483         Qualify the call to get<>().
484         * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
486 2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
488         * src/filesystem/ops.cc: Always include ostream and
489         ext/stdio_filebuf.h.
490         (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
491         [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
492         sendfile fails with ENOSYS or EINVAL.
494 2016-08-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
496         PR libstdc++/72840
497         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
498         syntax.
500 2016-08-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
502         Implement C++17 make_from_tuple.
503         * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
504         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
506 2016-08-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
508         Implement LWG 2758.
509         * include/bits/basic_string.h
510         (append(__sv_type, size_type, size_type)): Turn into a template,
511         change parameter type, constrain, add a conversion to __sv_type
512         from the dependent parameter type.
513         (assign(__sv_type, size_type, size_type)): Likewise.
514         (insert(size_type, __sv_type, size_type, size_type)): Likewise.
515         (replace(size_type, size_type, __sv_type, size_type, size_type)):
516         Likewise.
517         (compare(size_type, size_type,__sv_type, size_type, size_type)):
518         Likewise.
519         * testsuite/21_strings/basic_string/lwg2758.cc: New.
521 2016-08-06  Jonathan Wakely  <jwakely@redhat.com>
523         * doc/xml/manual/status_cxx2017.xml: Update status table.
524         * doc/html/manual/status.html: Regenerate.
526         * testsuite/lib/libstdc++.exp: Fix typo in comment.
528         PR libstdc++/72820
529         * include/std/functional (_Function_base::_Base_manager::_M_clone):
530         Qualify new operator.
531         * testsuite/20_util/function/cons/72820.cc: New test.
533         * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
534         * doc/html/manual/status.html: Regenerate.
535         * include/Makefile.am: Add new header.
536         * include/Makefile.in: Regenerate.
537         * include/bits/invoke.h: New header.
538         (__invoke): Make constexpr. Add && to types in exception specification.
539         * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
540         names. Include <bits/invoke.h> and use std::__invoke.
541         * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
542         new header.
543         (invoke): Add && to types in exception specification.
544         * include/std/tuple (apply, __apply_impl): Define for C++17.
545         * testsuite/20_util/tuple/apply/1.cc: New test.
546         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
547         lineno.
549 2016-08-05  Jonathan Wakely  <jwakely@redhat.com>
551         * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
552         * doc/html/manual/status.html: Regenerate.
554         * include/std/chrono (floor, ceil, round, abs): New for C++17.
555         * testsuite/20_util/duration_cast/rounding.cc: New test.
556         * testsuite/20_util/time_point_cast/rounding.cc: New test.
557         * doc/xml/manual/status_cxx2017.xml: Update status table.
558         * doc/html/manual/status.html: Regenerate.
559         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
560         dg-error lineno.
561         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
562         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
563         * testsuite/20_util/duration/literals/range.cc: Likewise.
565         * include/std/functional (__callable_functor): Remove.
566         (_Function_handler::_M_invoke): Use __invoke instead of
567         __callable_functor or mem_fn.
568         (function::_Callable): Use lvalue in result_of expression.
569         (function): Remove TODO comments about allocators.
570         * testsuite/20_util/function/cons/refqual.cc: New test.
572 2016-08-04  Jonathan Wakely  <jwakely@redhat.com>
574         * doc/xml/manual/status_cxx2017.xml: Update status table.
575         * include/std/functional (__inv_unwrap): Move to <type_traits>.
576         (__invoke_impl): Remove exception specifications.
577         (__invoke, invoke): Add exception specifications using
578         __is_nothrow_callable.
579         * include/std/type_traits (__inv_unwrap): Move from <functional>.
580         (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
581         (__is_callable, __is_nothrow_callable): New traits.
582         (is_callable, is_callable_v): New C++17 traits.
583         (is_nothrow_callable, is_nothrow_callable_v): Likewise.
584         * testsuite/20_util/is_callable/requirements/
585         explicit_instantiation.cc: New test.
586         * testsuite/20_util/is_callable/requirements/
587         explicit_instantiation_ext.cc: New test.
588         * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
589         * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
590         test.
591         * testsuite/20_util/is_callable/value.cc: New test.
592         * testsuite/20_util/is_callable/value_ext.cc: New test.
593         * testsuite/20_util/is_nothrow_callable/requirements/
594         explicit_instantiation.cc: New test.
595         * testsuite/20_util/is_nothrow_callable/requirements/
596         explicit_instantiation_ext.cc: New test.
597         * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
598         New test.
599         * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
600         New test.
601         * testsuite/20_util/is_nothrow_callable/value.cc: New test.
602         * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
604         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
605         * doc/html/manual/status.html: Regenerate.
607         * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
608         effective target not dg-options. Move check for feature-test macro to:
609         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
610         New test.
612         * include/std/functional (_Unwrap): Rename to __inv_unwrap.
613         (__invfwd): Adjust.
614         (__invoke_impl): Remove unused template parameters.
615         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
616         parameter.
617         * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
618         and test __invoke extension for C++11.
620 2016-08-03  Jonathan Wakely  <jwakely@redhat.com>
622         * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
623         Define feature-test macro.
624         * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
625         for the macro.
627         * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
628         * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
629         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
630         * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
631         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
633         * include/std/utility (as_const): Define.
634         * testsuite/20_util/as_const/1.cc: New test.
635         * testsuite/20_util/as_const/rvalue_neg.cc: New test.
637         * include/bits/shared_ptr.h (owner_less): Add default template
638         argument.
639         * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
640         specialization.
641         (owner_less<void>): Define specialization.
642         * include/bits/stl_function.h (__cpp_lib_transparent_operators):
643         Update value.
644         * testsuite/20_util/owner_less/void.cc: New test.
645         * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
647         * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
648         Define feature-test macro.
649         * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
650         * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
651         * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
652         (__cpp_lib_type_trait_variable_templates): Define.
654         * include/bits/stl_function.h: Remove commented-out macro.
655         * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
656         Define feature-test macro.
657         * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
659         * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
660         C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
661         true.
662         * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
663         do #error for C++17.
664         * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
665         of __STDCPP_WANT_MATH_SPEC_FUNCS__.
666         * include/tr1/bessel_function.tcc: Likewise.
667         * include/tr1/beta_function.tcc: Likewise.
668         * include/tr1/cmath: Likewise.
669         * include/tr1/ell_integral.tcc: Likewise.
670         * include/tr1/exp_integral.tcc: Likewise.
671         * include/tr1/gamma.tcc: Likewise.
672         * include/tr1/hypergeometric.tcc: Likewise.
673         * include/tr1/legendre_function.tcc: Likewise.
674         * include/tr1/modified_bessel_func.tcc: Likewise.
675         * include/tr1/poly_hermite.tcc: Likewise.
676         * include/tr1/poly_laguerre.tcc: Likewise.
677         * include/tr1/riemann_zeta.tcc: Likewise.
678         * include/tr1/special_function_util.h: Likewise.
679         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
681         * include/std/type_traits (has_trivial_default_constructor): Remove.
682         (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
683         * testsuite/20_util/has_trivial_copy_assign/requirements/
684         explicit_instantiation.cc: Remove test.
685         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
686         line number.
687         * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
688         Likewise.
689         * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
690         * testsuite/20_util/has_trivial_copy_constructor/requirements/
691         explicit_instantiation.cc: Likewise.
692         * testsuite/20_util/has_trivial_copy_constructor/requirements/
693         typedefs.cc: Likewise.
694         * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
695         * testsuite/20_util/has_trivial_default_constructor/requirements/
696         explicit_instantiation.cc: Likewise.
697         * testsuite/20_util/has_trivial_default_constructor/requirements/
698         typedefs.cc: Likewise.
699         * testsuite/20_util/has_trivial_default_constructor/value.cc:
700         Likewise.
701         * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
702         Check has_trivial_default_constructor, has_trivial_copy_constructor,
703         and has_trivial_copy_assign are not defined.
704         * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
705         tests.
706         * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
707         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
708         dg-error line number.
709         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
710         Likewise.
712 2016-08-02  Jonathan Wakely  <jwakely@redhat.com>
714         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
715         Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
716         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
717         Likewise.
718         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
719         Likewise.
720         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
721         Likewise.
722         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
723         Likewise.
724         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
725         Likewise.
726         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
727         Likewise.
729         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
730         comments.
732         * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
733         dg-error to relevant line.
734         * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
735         Likewise.
736         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
738         * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
740         * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
741         options are present that aren't valid for C.
742         * testsuite/abi/header_cxxabi.c: Likewise.
744         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
745         check_value.cc: Do not add special functions to namespace std in TR1
746         test.
748         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
749         run for C++11 and later.
750         * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
751         Likewise.
752         * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
753         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
754         * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
755         * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
756         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
757         Likewise.
758         * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
759         Likewise.
760         * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
761         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
762         Likewise.
763         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
764         Likewise.
765         * testsuite/special_functions/02_assoc_legendre/check_value.cc:
766         Likewise.
767         * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
768         * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
769         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
770         * testsuite/special_functions/03_beta/check_value.cc: Likewise.
771         * testsuite/special_functions/03_beta/compile.cc: Likewise.
772         * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
773         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
774         * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
775         Likewise.
776         * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
777         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
778         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
779         * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
780         Likewise.
781         * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
782         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
783         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
784         * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
785         Likewise.
786         * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
787         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
788         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
789         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
790         Likewise.
791         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
792         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
793         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
794         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
795         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
796         Likewise.
797         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
798         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
799         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
800         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
801         Likewise.
802         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
803         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
804         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
805         * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
806         * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
807         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
808         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
809         * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
810         * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
811         * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
812         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
813         * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
814         * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
815         * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
816         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
817         * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
818         * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
819         * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
820         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
821         * testsuite/special_functions/14_expint/check_value.cc: Likewise.
822         * testsuite/special_functions/14_expint/compile.cc: Likewise.
823         * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
824         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
825         * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
826         * testsuite/special_functions/15_hermite/compile.cc: Likewise.
827         * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
828         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
829         * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
830         * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
831         * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
832         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
833         * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
834         * testsuite/special_functions/17_legendre/compile.cc: Likewise.
835         * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
836         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
837         * testsuite/special_functions/18_riemann_zeta/check_value.cc:
838         Likewise.
839         * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
840         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
841         * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
842         * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
843         * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
844         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
845         * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
846         * testsuite/special_functions/20_sph_legendre/check_value.cc:
847         Likewise.
848         * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
849         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
850         * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
851         * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
852         * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
853         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
855         * testsuite/tr1/5_numerical_facilities/special_functions/
856         08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
857         of [[gnu::unused]].
858         * testsuite/tr1/5_numerical_facilities/special_functions/
859         09_cyl_bessel_j/check_value.cc: Likewise.
860         * testsuite/tr1/5_numerical_facilities/special_functions/
861         10_cyl_bessel_k/check_value.cc: Likewise.
862         * testsuite/tr1/5_numerical_facilities/special_functions/
863         11_cyl_neumann/check_value.cc: Likewise.
864         * testsuite/tr1/5_numerical_facilities/special_functions/
865         21_sph_bessel/check_value.cc: Likewise.
866         * testsuite/tr1/5_numerical_facilities/special_functions/
867         23_sph_neumann/check_value.cc: Likewise.
869 2016-08-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
871         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
872         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
873         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
874         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
875         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
876         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
878 2016-08-02  Jonathan Wakely  <jwakely@redhat.com>
880         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
881         test if -flto used.
883         * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
884         additional flags for compiling libtestc++.a objects.
886 2016-08-01  Jonathan Wakely  <jwakely@redhat.com>
888         * include/bits/basic_string.h (data() const): Update comment.
889         (data()): Add non-const overload for C++17.
890         * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
891         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
893         * include/bits/basic_string.tcc: Disable explicit instantiation
894         declarations for C++17.
896         * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
897         ignored "xfail" from { dg-do compile { xfail selector } } directive.
898         * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
899         Likewise.
900         * testsuite/26_numerics/headers/cmath/
901         c99_classification_macros_c++11.cc: Likewise.
902         * testsuite/26_numerics/headers/cmath/
903         c99_classification_macros_c++98.cc: Likewise.
904         * testsuite/26_numerics/headers/cmath/
905         c99_classification_macros_c.cc: Likewise.
907         * testsuite/backward/hash_set/check_construct_destroy.cc: Account
908         for different construct/destroy counts in C++98 mode.
910         * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
912         * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
913         later.
914         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
915         Likewise.
917         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
918         C++98-compatible initialization for array.
920         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
921         unused header and variable from compile-only test.
922         * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
923         * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
924         * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
925         * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
926         Likewise.
928         * testsuite/experimental/string_view/operations/rfind/char/2.cc:
929         Remove duplicate dg-options directive.
931         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
932         808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
934         * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
935         linker options from compile-only tests.
936         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
937         Likewise.
939         * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
940         supported for C++11 and later.
941         * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
942         * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
944 2016-08-01  Uros Bizjak  <ubizjak@gmail.com>
946         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
948 2016-07-31  Jonathan Wakely  <jwakely@redhat.com>
950         * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
951         compile-only test.
953         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
954         Ensure test is compiled with optimization.
956         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
957         Adjust dg-prune-output pattern for error in C++98 mode.
959         * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
960         run for C++11 or later.
962         * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
963         test to not rely on GNU extension (escaped normal characters in POSIX
964         BRE). Enable tests for other strings which are now supported.
966         * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
967         c++11 instead of setting -std=gnu++14.
969         PR libstdc++/72745
970         * include/std/array (get): Use positive message for static assertions.
971         * include/std/functional (_Safe_tuple_element_t): Fix indentation.
972         * include/std/tuple (tuple_element<I, tuple<>>): Add partial
973         specialization for invalid indices, with static assertion.
974         * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
976         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
977         dg-error to relevant line.
978         * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
979         Likewise.
980         * testsuite/23_containers/forward_list/requirements/dr438/
981         assign_neg.cc: Likewise.
982         * testsuite/23_containers/forward_list/requirements/dr438/
983         constructor_1_neg.cc: Likewise.
984         * testsuite/23_containers/forward_list/requirements/dr438/
985         constructor_2_neg.cc: Likewise.
986         * testsuite/23_containers/forward_list/requirements/dr438/
987         insert_neg.cc: Likewise.
988         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
989         Likewise.
990         * testsuite/26_numerics/random/linear_congruential_engine/
991         requirements/non_uint_neg.cc: Likewise.
992         * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
993         Likewise. Also test for std::atomic_address.
995 2016-07-31  Ville Voutilainen  <ville.voutilainen@gmail.com>
997         Add missing variable traits, fix testsuite failures.
998         * include/bits/uses_allocator.h (uses_allocator_v): New.
999         * include/std/functional (is_bind_expression_v, is_placeholder_v):
1000         Likewise.
1001         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1002         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1003         * testsuite/20_util/duration/literals/range.cc: Likewise.
1004         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1005         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1006         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1007         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1008         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1009         Likewise.
1010         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1011         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1012         New.
1014 2016-07-31  Jonathan Wakely  <jwakely@redhat.com>
1016         * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1017         not test 128-bit types.
1018         * testsuite/20_util/is_floating_point/value.cc: Likewise.
1019         * testsuite/20_util/is_integral/value.cc: Likewise.
1020         * testsuite/20_util/is_signed/value.cc: Likewise.
1021         * testsuite/20_util/is_unsigned/value.cc: Likewise.
1022         * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1023         * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1024         * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1025         Likewise.
1026         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1027         Likewise.
1029         * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1031 2016-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1033         Implement C++17 variable templates for type traits.
1034         * include/std/chrono (treat_as_floating_point_v): New.
1035         * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1036         (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1037         (ratio_greater_equal_v): Likewise.
1038         * include/std/system_error (is_error_code_enum_v)
1039         (is_error_condition_enum_v): Likewise.
1040         * include/std/tuple (tuple_size_v): Likewise.
1041         * type_traits (conjunction_v, disjunction_v, negation_v)
1042         (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1043         (is_array_v, is_pointer_v, is_lvalue_reference_v)
1044         (is_rvalue_reference_v, is_member_object_pointer_v)
1045         (is_member_function_pointer_v, is_enum_v, is_union_v)
1046         (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1047         (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1048         (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1049         (is_trivially_copyable_v, is_standard_layout_v)
1050         (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1051         (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1052         (is_constructible_v, is_default_constructible_v)
1053         (is_copy_constructible_v, is_move_constructible_v)
1054         (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1055         (is_destructible_v, is_trivially_constructible_v)
1056         (is_trivially_default_constructible_v)
1057         (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1058         (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1059         (is_trivially_move_assignable_v, is_trivially_destructible_v)
1060         (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1061         (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1062         (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1063         (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1064         (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1065         (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1066         * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1067         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1068         Likewise.
1069         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1070         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1071         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1073 2016-07-29  Andreas Schwab  <schwab@linux-m68k.org>
1075         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1076         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1077         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1079 2016-07-29  Jonathan Wakely  <jwakely@redhat.com>
1081         * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1082         * doc/html/manual/abi.html: Regenerate.
1084         * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1085         * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1086         symbols.
1087         * configure: Regenerate.
1088         * testsuite/util/testsuite_abi.cc: Add new symbol version.
1090         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1091         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1092         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1093         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1094         Likewise.
1095         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1096         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1097         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1099 2016-07-28  Jonathan Wakely  <jwakely@redhat.com>
1101         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1102         Adjust dg-prune-output pattern for error in C++98 mode.
1103         * testsuite/23_containers/deque/requirements/dr438/
1104         constructor_1_neg.cc: Likewise.
1105         * testsuite/23_containers/deque/requirements/dr438/
1106         constructor_2_neg.cc: Likewise.
1107         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1108         Likewise.
1109         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1110         Likewise.
1111         * testsuite/23_containers/list/requirements/dr438/
1112         constructor_1_neg.cc: Likewise.
1113         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1114         Likewise.
1115         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1116         Likewise.
1117         * testsuite/23_containers/vector/requirements/dr438/
1118         constructor_1_neg.cc: Likewise.
1119         * testsuite/23_containers/vector/requirements/dr438/
1120         constructor_2_neg.cc: Likewise.
1121         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1122         Likewise.
1124         * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1125         for different construct/destroy counts in C++98 mode.
1127         * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1128         dg-options to dg-additional-options so that default options are used.
1129         * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1130         Likewise.
1131         * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1132         * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1133         Likewise.
1134         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1135         Use dg-additional-options instead of repeating the common options.
1137         * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1138         dg-do compile directive.
1139         * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1140         dg-do directive.
1141         * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1143 2016-07-28  Ville Voutilainen  <ville.voutilainen@gmail.com>
1145         Implement std::string_view and P0254r2,
1146         Integrating std::string_view and std::string.
1147         * include/Makefile.am: Add string_view and string_view.tcc
1148         to the exported headers.
1149         * include/Makefile.in: Likewise.
1150         * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1151         (__sv_type): New.
1152         (basic_string(__sv_type, const _Alloc&)): Likewise.
1153         (operator=(__sv_type)): Likewise.
1154         (operator __sv_type()): Likewise.
1155         (operator+=(__sv_type)): Likewise.
1156         (append(__sv_type __sv)): Likewise.
1157         (append(__sv_type, size_type, size_type)): Likewise.
1158         (assign(__sv_type)): Likewise.
1159         (assign(__sv_type, size_type, size_type)): Likewise.
1160         (insert(size_type, __sv_type)): Likewise.
1161         (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1162         (replace(size_type, size_type, __sv_type)): Likewise.
1163         (replace(size_type, size_type, __sv_type, size_type, size_type)):
1164         Likewise.
1165         (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1166         (find(__sv_type, size_type)): Likewise.
1167         (rfind(__sv_type, size_type)): Likewise.
1168         (find_first_of(__sv_type, size_type)): Likewise.
1169         (find_last_of(__sv_type, size_type)): Likewise.
1170         (find_first_not_of(__sv_type, size_type)): Likewise.
1171         (find_last_not_of(__sv_type, size_type)): Likewise.
1172         (compare(__sv_type)): Likewise.
1173         (compare(size_type, size_type, __sv_type)): Likewise.
1174         (compare(size_type, size_type, __sv_type, size_type, size_type)):
1175         Likewise.
1176         * include/bits/string_view.tcc: New.
1177         * include/std/string_view: Likewise.
1178         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1179         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1180         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1181         Likewise.
1182         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1183         Likewise.
1184         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1185         Likewise.
1186         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1187         Likewise.
1188         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1189         Likewise.
1190         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1191         Likewise.
1192         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1193         Likewise.
1194         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1195         Likewise.
1196         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1197         Likewise.
1198         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1199         Likewise.
1200         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1201         Likewise.
1202         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1203         Likewise.
1204         * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1205         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1206         * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1207         * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1208         * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1209         * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1210         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1211         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1212         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1213         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1214         Likewise.
1215         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1216         Likewise.
1217         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1218         Likewise.
1219         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1220         Likewise.
1221         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1222         Likewise.
1223         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1224         Likewise.
1225         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1226         Likewise.
1227         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1228         Likewise.
1229         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1230         * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1231         * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1232         * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1233         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1234         Likewise.
1235         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1236         Likewise.
1237         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1238         Likewise.
1239         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1240         Likewise.
1241         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1242         Likewise.
1243         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1244         Likewise.
1245         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1246         Likewise.
1247         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1248         Likewise.
1249         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1250         Likewise.
1251         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1252         Likewise.
1253         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1254         Likewise.
1255         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1256         Likewise.
1257         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1258         Likewise.
1259         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1260         Likewise.
1261         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1262         Likewise.
1263         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1264         Likewise.
1265         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1266         Likewise.
1267         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1268         Likewise.
1269         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1270         Likewise.
1271         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1272         Likewise.
1273         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1274         Likewise.
1275         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1276         Likewise.
1277         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1278         Likewise.
1279         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1280         Likewise.
1281         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1282         Likewise.
1283         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1284         Likewise.
1285         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1286         Likewise.
1287         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1288         Likewise.
1289         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1290         Likewise.
1291         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1292         Likewise.
1293         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1294         Likewise.
1295         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1296         Likewise.
1297         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1298         Likewise.
1299         * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
1300         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1301         Likewise.
1302         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1303         Likewise.
1304         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1305         Likewise.
1306         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1307         Likewise.
1308         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1309         Likewise.
1310         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1311         Likewise.
1312         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1313         Likewise.
1314         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1315         Likewise.
1316         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1317         Likewise.
1318         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1319         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1321 2016-07-27  Jonathan Wakely  <jwakely@redhat.com>
1323         * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
1325 2016-07-25  Georeth Chow  <georeth2010@gmail.com>
1327         * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
1328         _S_concat enumerator.
1329         * testsuite/ext/rope/6.cc: New test.
1331 2016-07-25  Jonathan Wakely  <jwakely@redhat.com>
1333         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
1334         std::mt19937, std::thread and std::atomic to simplify test.
1335         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1337 2016-07-22  Jonathan Wakely  <jwakely@redhat.com>
1339         PR libstdc++/71964
1340         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1341         (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
1342         * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
1343         * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
1344         * testsuite/23_containers/set/allocator/71964.cc: New test.
1346         * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
1347         delete[] instead of delete.
1349 2016-07-21  Jonathan Wakely  <jwakely@redhat.com>
1351         * include/experimental/propagate_const (propagate_const::__t): Rename
1352         to _M_t and remove comment. Qualify std::move and std::forward.
1353         * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
1355         * testsuite/23_containers/vector/zero_sized_allocations.cc:
1356         Define sized deallocation function.
1357         * testsuite/util/testsuite_new_operators.h:
1358         (operator delete(void*, const std::nothrow_t&)): Define nothrow
1359         deallocation function.
1361         * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
1362         reads past the end of strings.
1363         * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
1364         Likewise.
1365         * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
1366         invalid array accesses.
1367         * testsuite/experimental/string_view/operations/compare/char/1.cc:
1368         Fix read past the end of string.
1369         * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
1371         * testsuite/24_iterators/container_access.cc: Fix missing returns.
1372         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
1374         * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
1375         leak) memory for arguments to placement delete.
1376         * testsuite/20_util/addressof/1.cc: Don't leak memory.
1377         * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
1378         * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
1379         Likewise.
1381 2016-07-20  Jonathan Wakely  <jwakely@redhat.com>
1383         * doc/xml/manual/intro.xml: Document DR 2684 status.
1384         * doc/html/*: Regenerate.
1386         * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
1387         (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
1388         (atomic_uint64_t): Define (LWG 2441).
1389         * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
1390         lines.
1391         * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
1392         the new types.
1393         * doc/xml/manual/intro.xml: Document DR 2441 status.
1395         * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
1396         to use perfect forwarding (LWG 2328).
1397         * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
1398         * doc/xml/manual/intro.xml: Document DR 2328 status.
1400         * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
1401         static objects for catching nullptr as pointer to member types.
1403 2016-07-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
1405         Clean up optional's comments.
1406         * include/std/optional: Remove incorrect section headers
1407         from comments when redundant, replace bare section
1408         headers with more descriptive comments.
1410 2016-07-15  Jonathan Wakely  <jwakely@redhat.com>
1412         * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
1413         * include/bits/move.h: Likewise.
1414         * include/bits/postypes.h: Likewise.
1415         * include/debug/bitset: Likewise.
1416         * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
1417         * include/ext/string_conversions.h: Change C++0x to __cxx11 in
1418         comment.
1419         * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
1420         * testsuite/util/thread/all.h: Likewise.
1422         * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
1423         and adjust comment.
1425         PR c++/58796
1426         * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
1427         nullptr match handlers of pointer type.
1429 2016-07-15  Edward Smith-Rowland  <3dw4rd@verizon.net>
1431         Implement C++17 P0025 clamp.
1432         * include/bits/algorithmfwd.h: Declare clamp overloads.
1433         * include/bits/stl_algo.h: Implement clamp.  Feature __cpp_lib_clamp.
1434         * testsuite/25_algorithms/clamp/1.cc: New test.
1435         * testsuite/25_algorithms/clamp/2.cc: New test.
1436         * testsuite/25_algorithms/clamp/constexpr.cc: New test.
1437         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1438         1.cc: New test.
1439         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1440         pod.cc: New test.
1442 2016-07-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
1444         Fix the constraints for any's assignment operator template to properly
1445         reject assignment from a non-copyable lvalue.
1446         * include/std/any (operator=(_ValueType&&)): Constrain the decayed
1447         type for is_copy_constructible,
1448         * testsuite/20_util/any/requirements.cc: Add a test for
1449         non-copyable lvalues.
1451 2016-07-14  Jonathan Wakely  <jwakely@redhat.com>
1453         * include/experimental/functional: Include <parallel/algorithm> in
1454         Parallel Mode.
1456         * testsuite/experimental/functional/searchers.cc: Include <algorithm>
1457         for std::search.
1459         PR libstdc++/70716
1460         * include/bits/forward_list.h (forward_list): Update doxygen comments
1461         to reflect allocator propagation semantics. Remove ambiguous
1462         statements about data being lost.
1463         * include/bits/stl_deque.h (deque): Likewise.
1464         * include/bits/stl_list.h (list): Likewise.
1465         * include/bits/stl_map.h (map): Likewise.
1466         * include/bits/stl_multimap.h (multimap): Likewise.
1467         * include/bits/stl_multiset.h (multiset): Likewise.
1468         * include/bits/stl_set.h (set): Likewise.
1469         * include/bits/stl_vector.h (vector): Likewise.
1470         * include/bits/unordered_map.h (unordered_map, unordered_multimap):
1471         Likewise.
1472         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
1473         Likewise.
1475 2016-07-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
1477         Implement P0032R3, Homogeneous interface for variant, any and optional,
1478         for the parts concerning any and optional.
1479         * include/std/any (_Storage()): Make constexpr and have it
1480         initialize _M_ptr.
1481         (any()): Make constexpr.
1482         (any(const any&)): Adjust.
1483         (any(any&&)): Likewise.
1484         (__any_constructible_t): New.
1485         (any(_ValueType&&)): Constrain.
1486         (any(in_place_type_t<_Tp>, _Args&&...)): New.
1487         (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
1488         Likewise.
1489         (~any()): Adjust.
1490         (operator=(const any&)): Likewise.
1491         (operator=(any&&)): Likewise.
1492         (operator=(_ValueType&&)): Constrain.
1493         (emplace(_Args&&...)): New.
1494         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1495         (clear()): Remove.
1496         (reset()): New.
1497         (swap(any&)): Adjust.
1498         (empty()): Remove.
1499         (has_value()): New.
1500         (type()): Adjust.
1501         (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
1502         (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
1503         (make_any(_Args&&...)): Likewise.
1504         (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
1505         * include/std/optional (in_place_t, in_place): Remove.
1506         (bad_optional_access): Add a comment referring to LEWG 72.
1507         (emplace(_Args&&...)): Constrain.
1508         (has_value()): New.
1509         (reset()): Likewise.
1510         (make_optional(_Args&&...)): Likewise.
1511         (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
1512         * include/std/utility (in_place_tag): New.
1513         (__in_place, __in_place_type, __in_place_index): Likewise.
1514         (in_place_t, in_place_type_t, in_place_index_t): Likewise.
1515         (in_place(__in_place*)): Likewise.
1516         (in_place(__in_place_type<_Tp>*)): Likewise.
1517         (in_place(__in_place_index<_Idx>*)): Likewise.
1518         * testsuite/20_util/any/assign/1.cc: Adjust.
1519         * testsuite/20_util/any/assign/emplace.cc: New.
1520         * testsuite/20_util/any/assign/self.cc: Adjust.
1521         * testsuite/20_util/any/cons/1.cc: Likewise.
1522         * testsuite/20_util/any/cons/in_place.cc: New.
1523         * testsuite/20_util/any/make_any.cc: Likewise.
1524         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1525         * testsuite/20_util/any/misc/swap.cc: Likewise.
1526         * testsuite/20_util/any/modifiers/1.cc: Likewise.
1527         * testsuite/20_util/any/requirements.cc: New.
1528         * testsuite/20_util/in_place/requirements.cc: Likewise.
1529         * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
1530         * testsuite/20_util/optional/in_place.cc: Likewise.
1531         * testsuite/20_util/optional/make_optional.cc: Add tests for
1532         the new overloads of make_optional.
1534 2016-07-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1536         Implement P0307R2, Making Optional Greater Equal Again.
1537         * include/experimental/optional (_Has_addressof): Fix the comment.
1538         * include/std/optional (_Has_addressof): Likewise.
1539         (operator=(_Up&&)): Constrain.
1540         (operator=(const optional<_Up>&)): Likewise.
1541         (operator=(optional<_Up>&&)): Likewise.
1542         (__optional_relop_t): New.
1543         (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1544         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1545         Constrain and make transparent.
1546         (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1547         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1548         Constrain and make transparent.
1549         (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1550         (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1551         (operator==(const optional<_Tp>&, const _Tp&): Constrain.
1552         (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
1553         (operator!=(const optional<_Tp>&, _Tp const&)):
1554         Constrain and make transparent.
1555         (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
1556         (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
1557         (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
1558         (operator>(const optional<_Tp>&, const _Tp&)):
1559         Constrain and make transparent.
1560         (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
1561         (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
1562         (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
1563         (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
1564         (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
1565         * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
1566         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1567         * testsuite/20_util/optional/relops/1.cc: Likewise.
1568         * testsuite/20_util/optional/relops/2.cc: Likewise.
1569         * testsuite/20_util/optional/relops/3.cc: Likewise.
1570         * testsuite/20_util/optional/relops/4.cc: Likewise.
1571         * testsuite/20_util/optional/requirements.cc: Add tests to verify
1572         that optional's relops are transparent and don't synthesize
1573         operators. Also test that assignment sfinaes.
1575 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
1577         PR libstdc++/71856
1578         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
1579         * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
1580         Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
1581         on _GLIBCXX_ASSERTIONS.
1582         * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
1583         Include <unistd.h> for sleep.
1584         * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
1585         * include/parallel/merge.h: Likewise.
1586         * include/parallel/multiway_merge.h: Likewise.
1587         * include/parallel/partition.h: Likewise.
1588         * include/parallel/queue.h: Likewise.
1589         * include/parallel/sort.h: Likewise.
1590         * testsuite/25_algorithms/headers/algorithm/
1591         parallel_algorithm_assert.cc: New.
1593         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1594         (replace(__const_iterator, __const_iterator, initializer_list<C>)):
1595         Forward to different overload.
1597         * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
1598         static.
1600 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
1602         Revert "Add non-const overload of std::string::data()".
1604 2016-07-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1606         Implement P0307R2, Making Optional Greater Equal Again.
1607         * include/experimental/optional (_Has_addressof): Fix the comment.
1608         * include/std/optional (_Has_addressof): Likewise.
1609         (operator=(_Up&&)): Constrain.
1610         (operator=(const optional<_Up>&)): Likewise.
1611         (operator=(optional<_Up>&&)): Likewise.
1612         (__optional_relop_t): New.
1613         (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1614         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
1615         Constrain and make transparent.
1616         (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
1617         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
1618         Constrain and make transparent.
1619         (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1620         (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
1621         (operator==(const optional<_Tp>&, const _Tp&): Constrain.
1622         (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
1623         (operator!=(const optional<_Tp>&, _Tp const&)):
1624         Constrain and make transparent.
1625         (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
1626         (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
1627         (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
1628         (operator>(const optional<_Tp>&, const _Tp&)):
1629         Constrain and make transparent.
1630         (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
1631         (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
1632         (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
1633         (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
1634         (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
1635         * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
1636         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1637         * testsuite/20_util/optional/relops/1.cc: Likewise.
1638         * testsuite/20_util/optional/relops/2.cc: Likewise.
1639         * testsuite/20_util/optional/relops/3.cc: Likewise.
1640         * testsuite/20_util/optional/relops/4.cc: Likewise.
1641         * testsuite/20_util/optional/requirements.cc: Add tests to verify
1642         that optional's relops are transparent and don't synthesize
1643         operators. Also test that assignment sfinaes.
1645 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
1647         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
1648         New function.
1649         (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
1650         instead of _M_data().
1651         (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
1652         Likewise.
1653         (append(const basic_string&)): Likewise.
1654         (append(const basic_string&, size_type, size_type)): Likewise.
1655         (assign(const basic_string&, size_type, size_type)): Likewise.
1656         (insert(size_type, const basic_string&)): Likewise.
1657         (insert(size_type, const basic_string&, size_type, size_type)):
1658         Likewise.
1659         (replace(size_type, size_type, const basic_string&, size_type,
1660         size_type)): Likewise.
1661         (replace(__const_iterator, __const_iterator, const basic_string&)):
1662         Likewise.
1663         (c_str(), data()): Use c_str() instead of _M_data().
1664         (data()): Add non-const overload as per LWG 2391 and P0272R1.
1665         (compare(const basic_string&)): Use data() instead of _M_data().
1666         [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
1667         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
1668         Pass raw pointers to _S_copy.
1669         (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
1670         _S_assign.
1671         (find(const _CharT*, size_type, size_type)): Use data instead of
1672         _M_data().
1673         * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
1674         * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1675         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1677 2016-07-12  Jonathan Wakely  <jwakely@redhat.com>
1679         * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
1680         * doc/xml/manual/intro.xml: Document DR 2458 status.
1681         * doc/html*: Regenerate.
1683         * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
1684         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
1685         Only include <array>.
1686         * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
1687         Likewise.
1688         * doc/xml/manual/intro.xml: Document LWG 2212 support.
1689         * doc/html*: Regenerate.
1691         * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
1692         Add testcase from LWG 2164.
1694 2016-07-11  François Dumont  <fdumont@gcc.gnu.org>
1696         * include/bits/stl_vector.h (push_back(const value_type&)): Forward
1697         to _M_realloc_insert.
1698         (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
1699         (_M_realloc_insert): Declare new function.
1700         (_M_emplace_back_aux): Remove definition.
1701         * include/bits/vector.tcc (emplace_back(_Args...)):
1702         Use _M_realloc_insert.
1703         (insert(const_iterator, const value_type&)): Likewise.
1704         (_M_insert_rval, _M_emplace_aux): Likewise.
1705         (_M_emplace_back_aux): Remove declaration.
1706         (_M_realloc_insert): Define.
1707         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1708         Adjust expected results for emplacing an lvalue with reallocation.
1710 2016-07-10  Ville Voutilainen  <ville.voutilainen@gmail.com>
1712         Implement std::optional.
1713         * include/Makefile.am: Add optional to exported headers.
1714         * include/Makefile.in: Likewise.
1715         * include/std/optional: New.
1716         * testsuite/20_util/optional/typedefs.cc: Likewise.
1717         * testsuite/20_util/optional/relops/2.cc: Likewise.
1718         * testsuite/20_util/optional/relops/3.cc: Likewise.
1719         * testsuite/20_util/optional/relops/4.cc: Likewise.
1720         * testsuite/20_util/optional/relops/5.cc: Likewise.
1721         * testsuite/20_util/optional/relops/1.cc: Likewise.
1722         * testsuite/20_util/optional/relops/6.cc: Likewise.
1723         * testsuite/20_util/optional/nullopt.cc: Likewise.
1724         * testsuite/20_util/optional/in_place.cc: Likewise.
1725         * testsuite/20_util/optional/make_optional.cc: Likewise.
1726         * testsuite/20_util/optional/assignment/2.cc: Likewise.
1727         * testsuite/20_util/optional/assignment/3.cc: Likewise.
1728         * testsuite/20_util/optional/assignment/4.cc: Likewise.
1729         * testsuite/20_util/optional/assignment/5.cc: Likewise.
1730         * testsuite/20_util/optional/assignment/1.cc: Likewise.
1731         * testsuite/20_util/optional/assignment/6.cc: Likewise.
1732         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
1733         * testsuite/20_util/optional/cons/default.cc: Likewise.
1734         * testsuite/20_util/optional/cons/move.cc: Likewise.
1735         * testsuite/20_util/optional/cons/value.cc: Likewise.
1736         * testsuite/20_util/optional/cons/copy.cc: Likewise.
1737         * testsuite/20_util/optional/requirements.cc: Likewise.
1738         * testsuite/20_util/optional/observers/2.cc: Likewise.
1739         * testsuite/20_util/optional/observers/3.cc: Likewise.
1740         * testsuite/20_util/optional/observers/4.cc: Likewise.
1741         * testsuite/20_util/optional/observers/5.cc: Likewise.
1742         * testsuite/20_util/optional/observers/1.cc: Likewise.
1743         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
1744         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
1745         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1746         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
1747         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
1748         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
1749         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
1750         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
1751         * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
1752         * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
1753         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
1754         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
1755         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
1756         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
1757         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
1758         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
1759         * testsuite/20_util/optional/swap/1.cc: Likewise.
1761 2016-07-08  Jonathan Wakely  <jwakely@redhat.com>
1763         * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
1765 2016-07-07  Jonathan Wakely  <jwakely@redhat.com>
1767         * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
1768         * doc/html/*: Regenerate.
1770 2016-07-07  Ville Voutilainen  <ville.voutilainen@gmail.com>
1772         Implement std::any.
1773         * include/Makefile.am: Add any and c++17_warning.h to exported headers.
1774         * include/Makefile.in: Likewise.
1775         * include/std/any: New.
1776         * testsuite/20_util/any/assign/1.cc: Likewise.
1777         * testsuite/20_util/any/assign/2.cc: Likewise.
1778         * testsuite/20_util/any/assign/self.cc: Likewise.
1779         * testsuite/20_util/any/cons/1.cc: Likewise.
1780         * testsuite/20_util/any/cons/2.cc: Likewise.
1781         * testsuite/20_util/any/cons/aligned.cc: Likewise.
1782         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
1783         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
1784         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
1785         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
1786         * testsuite/20_util/any/misc/swap.cc: Likewise.
1787         * testsuite/20_util/any/modifiers/1.cc: Likewise.
1788         * testsuite/20_util/any/observers/type.cc: Likewise.
1789         * testsuite/20_util/any/typedefs.cc: Likewise.
1791 2016-07-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
1793         Add a new header for diagnosing the use of C++17 facilities
1794         in pre-C++17 modes.
1795         * include/bits/c++17_warning.h: New.
1797 2016-07-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
1799         Implement LWG 2451, optional<T> should 'forward' T's
1800         implicit conversions.
1801         * include/experimental/optional (__is_optional_impl, __is_optional):
1802         New.
1803         (optional()): Make constexpr and default.
1804         (optional(_Up&&), optional(const optional<_Up>&),
1805         optional(optional<_Up>&& __t): New.
1806         (operator=(_Up&&)): Constrain.
1807         (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
1808         * testsuite/experimental/optional/cons/value.cc:
1809         Add tests for the functionality added by LWG 2451.
1810         * testsuite/experimental/optional/cons/value_neg.cc: New.
1812 2016-07-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
1814         Implement LWG 2509,
1815         any_cast doesn't work with rvalue reference targets and cannot
1816         move with a value target.
1817         * include/experimental/any (any(_ValueType&&)): Constrain and
1818         add an overload that doesn't forward.
1819         (any_cast(any&&)): Constrain and add an overload that moves.
1820         * testsuite/experimental/any/misc/any_cast.cc: Add tests for
1821         the functionality added by LWG 2509.
1823 2016-07-04  François Dumont  <fdumont@gcc.gnu.org>
1825         * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
1826         New test.
1827         * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
1828         test.
1830 2016-07-04  Jonathan Wakely  <jwakely@redhat.com>
1832         * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
1833         Define inline. Forward to _M_emplace_aux.
1834         (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
1835         (_M_insert_rval, _M_emplace_aux): Declare new functions.
1836         (_Temporary_value): New RAII type using allocator to construct/destroy.
1837         (_S_insert_aux_assign): Remove.
1838         (_M_insert_aux): Make non-variadic.
1839         * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
1840         Use _Temporary_value.
1841         (emplace(const_iterator, _Args&&...)): Remove definition.
1842         (_M_insert_rval, _M_emplace_aux): Define.
1843         (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
1844         (_M_fill_insert): Use _Temporary_value.
1845         * testsuite/23_containers/vector/allocator/construction.cc: New test.
1846         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
1847         Adjust expected results for emplacing an lvalue with reallocation.
1848         * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
1849         expected results to account for construction/destruction of temporary
1850         using allocator.
1851         * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
1853 2016-07-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
1855         PR libstdc++/71313
1856         * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
1857         Call remove_all for children of a directory.
1858         * testsuite/experimental/filesystem/operations/create_directories.cc:
1859         Adjust.
1861 2016-07-02  François Dumont  <fdumont@gcc.gnu.org>
1863         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
1864         dg-error line numbers.
1865         * testsuite/23_containers/array/tuple_interface/
1866         tuple_element_debug_neg.cc: Likewise.
1867         * testsuite/25_algorithms/lexicographical_compare/debug/
1868         irreflexive_neg.cc: Remove.
1870 2016-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1872         * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
1873         than specific target.
1875 2016-06-27  François Dumont  <fdumont@gcc.gnu.org>
1877         PR libstdc++/71640
1878         * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
1879         friend declaration.
1881 2016-06-23  François Dumont  <fdumont@gcc.gnu.org>
1883         * include/debug/array (array<>::swap): Fix noexcept qualificaton for
1884         zero-size array.
1886 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1888         * configure.host: Remove mep-* support.
1890 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1892         * configure: Regenerate.
1893         * configure.host: Remove support for knetbsd.
1894         * crossconfig.m4: Likewise.
1896 2016-06-20  François Dumont  <fdumont@gcc.gnu.org>
1898         PR libstdc++/71181
1899         * include/tr1/hashtable_policy.h
1900         (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
1901         dereferenceable to avoid check on lower_bound result.
1902         (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
1903         (_Prime_rehash_policy::_M_need_rehash): Likewise.
1904         * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
1905         Always return a value greater than input value. Set _M_next_resize to
1906         max value when reaching highest prime number.
1907         * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
1908         being now useless.
1909         * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
1910         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
1911         (test02): New.
1912         * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
1913         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
1914         Fix indentation.
1916 2016-06-17  Jonathan Wakely  <jwakely@redhat.com>
1918         PR libstdc++/71545
1919         * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
1920         Remove irreflexive checks.
1921         * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
1922         binary_search): Likewise.
1923         * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
1924         * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
1925         * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
1926         * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
1927         * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
1928         Add constructor from array.
1930 2016-06-16  François Dumont  <fdumont@gcc.gnu.org>
1932         * include/debug/debug.h
1933         (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
1934         (__glibcxx_requires_subscript): Move...
1935         * include/debug/assertions.h: ...here and add __builtin_expect.
1936         (_GLIBCXX_DEBUG_ONLY): Remove ; value.
1937         * include/bits/stl_deque.h
1938         (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
1939         (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
1940         (std::deque<>::back()): Likewise.
1941         (std::deque<>::pop_front()): Likewise.
1942         (std::deque<>::pop_back()): Likewise.
1943         (std::deque<>::swap(deque&)): Add allocator check.
1944         * include/bits/stl_vector.h
1945         (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
1946         (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
1947         (std::vector<>::back()): Likewise.
1948         (std::vector<>::pop_back()): Likewise.
1949         (std::vector<>::swap(vector&)): Add allocator check.
1951 2016-06-16  Daniel Kruegler  <daniel.kruegler@gmail.com>
1953         Provide swappable traits (p0185r1)
1954         * include/std/type_traits (is_swappable, is_nothrow_swappable,
1955         is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
1956         is_nothrow_swappable_v, is_swappable_with_v,
1957         is_nothrow_swappable_with_v): New.
1958         * include/bits/stl_pair.h: Use it as per p0185r1.
1959         * include/bits/stl_queue.h: Likewise.
1960         * include/bits/stl_stack.h: Likewise.
1961         * include/bits/unique_ptr.h: Likewise.
1962         * include/std/tuple: Likewise.
1963         * include/std/array: Likewise. Fix zero-size member swap.
1964         * include/bits/hashtable.h: Use __and_.
1965         * testsuite/20_util/is_nothrow_swappable/requirements/
1966         explicit_instantiation.cc: Change test options to std=gnu++17.
1967         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
1968         Likewise.
1969         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
1970         * testsuite/20_util/is_swappable/requirements/
1971         explicit_instantiation.cc: Likewise.
1972         * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
1973         * testsuite/20_util/is_swappable/value.cc: Likewise.
1974         * testsuite/20_util/is_nothrow_swappable/requirements/
1975         explicit_instantiation_ext.cc: New.
1976         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
1977         New.
1978         * testsuite/20_util/is_nothrow_swappable/value.h: New.
1979         * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
1980         * testsuite/20_util/is_nothrow_swappable_with/requirements/
1981         explicit_instantiation.cc: New.
1982         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
1983         New.
1984         * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
1985         * testsuite/20_util/is_swappable/requirements/
1986         explicit_instantiation_ext.cc: New.
1987         * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
1988         * testsuite/20_util/is_swappable/value.h: New.
1989         * testsuite/20_util/is_swappable/value_ext.cc: New.
1990         * testsuite/20_util/is_swappable_with/requirements/
1991         explicit_instantiation.cc: New.
1992         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
1993         * testsuite/20_util/is_swappable_with/value.cc: New.
1994         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
1995         dg-error line numbers.
1996         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
1997         Likewise.
1999 2016-06-16  Jonathan Wakely  <jwakely@redhat.com>
2001         * include/std/array: Remove trailing whitespace.
2002         * include/std/atomic: Likewise.
2003         * include/std/bitset: Likewise.
2004         * include/std/chrono: Likewise.
2005         * include/std/complex: Likewise.
2006         * include/std/condition_variable: Likewise.
2007         * include/std/fstream: Likewise.
2008         * include/std/functional: Likewise.
2009         * include/std/future: Likewise.
2010         * include/std/iomanip: Likewise.
2011         * include/std/iosfwd: Likewise.
2012         * include/std/istream: Likewise.
2013         * include/std/limits: Likewise.
2014         * include/std/ratio: Likewise.
2015         * include/std/scoped_allocator: Likewise.
2016         * include/std/sstream: Likewise.
2017         * include/std/stdexcept: Likewise.
2018         * include/std/string: Likewise.
2019         * include/std/system_error: Likewise.
2020         * include/std/thread: Likewise.
2021         * include/std/tuple: Likewise.
2022         * include/std/type_traits: Likewise.
2023         * include/std/utility: Likewise.
2024         * include/std/valarray: Likewise.
2025         * include/std/vector: Likewise.
2027         * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2028         new overloaded functions.
2029         * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2030         to avoid creating a redundant temporary.
2031         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2032         test.
2034 2016-06-15  François Dumont  <fdumont@gcc.gnu.org>
2036         * include/bits/stl_deque.h
2037         (std::deque<>::operator=): Call _M_assign_aux.
2038         (std::deque<>::assign(initializer_list<>)): Likewise.
2039         (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2040         (std::deque<>::insert(const_iterator, initializer_list<>)):
2041         Call _M_range_insert_aux.
2042         (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2043         Likewise.
2044         (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2045         (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2046         * include/bits/deque.tcc
2047         (std::deque<>::operator=): Call _M_range_insert_aux.
2048         (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2049         Likewise.
2050         * include/bits/stl_vector.h
2051         (std::vector<>::operator=): Call _M_assign_aux.
2052         (std::vector<>::assign(initializer_list<>)): Likewise.
2053         (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2054         (std::vector<>::insert(const_iterator, initializer_list<>)):
2055         Call _M_range_insert.
2056         * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2058 2016-06-07  François Dumont  <fdumont@gcc.gnu.org>
2060         * include/std/tuple (_Head_base<>): Default specialization condition at
2061         type declaration.
2063 2016-06-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2065         Support allocators in tuples of zero size.
2066         * include/std/tuple (tuple<>::tuple(),
2067         tuple<>::tuple(allocator_arg_t, const _Alloc&),
2068         tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2069         * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2071 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2073         PR libstdc++/71320
2074         * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2075         Add or remove permissions according to perms argument.
2076         * testsuite/experimental/filesystem/operations/permissions.cc: New
2077         test.
2079 2016-06-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
2081         Protect allocator-overloads of tuple-from-tuple constructors
2082         from cases that would create dangling references.
2083         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2084         const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2085         tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2086         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2088 2016-05-29  Gerald Pfeifer  <gerald@pfeifer.com>
2090         * doc/xml/manual/backwards_compatibility.xml: Adjust
2091         lists.debian.org link to https.
2092         * doc/html/manual/backwards.html: Regenerate.
2094 2016-05-27  Jonathan Wakely  <jwakely@redhat.com>
2096         * doc/xml/manual/abi.xml: Adjust URL to use https.
2097         * doc/html/manual/*: Regenerate.
2099 2016-05-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
2101         PR libstdc++/66338
2102         * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2103         * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2104         check for _NotSameTuple.
2105         * include/std/tuple (_TMCT): New.
2106         * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2107         * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2108         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2109               const tuple<_UElements...>&)): Likewise.
2110         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2111               tuple<_UElements...>&&)): Likewise.
2112         * testsuite/20_util/tuple/cons/66338.cc: New.
2114 2016-05-25  Jonathan Wakely  <jwakely@redhat.com>
2116         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2117         * configure: Regenerate.
2118         * config.h.in: Regenerate.
2120         * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2121         * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2122         Remove const qualification on function. Replace
2123         _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2124         (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2125         (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2127 2016-05-24  François Dumont  <fdumont@gcc.gnu.org>
2129         * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2130         * include/bits/hashtable_policy.h
2131         (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2132         having load factor management.
2133         (_Mask_range_hashing): New.
2134         (__clp2): New.
2135         (_Power2_rehash_policy): New.
2136         (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2137         partial specializations only depend on whether iterators are constant
2138         or not.
2139         * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2140         test new hash policy.
2141         * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2142         Likewise.
2143         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2144         Likewise.
2145         * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2146         Likewise.
2147         * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2148         Likewise.
2149         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2150         New.
2151         * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2152         using the new hash policy.
2153         * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2155 2016-05-24  Jonathan Wakely  <jwakely@redhat.com>
2157         * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2159 2016-05-23  François Dumont  <fdumont@gcc.gnu.org>
2161         * include/debug/safe_iterator.h
2162         (_Safe_iterator<>::operator->()): Implement using underlying iterator
2163         operator ->.
2164         * include/debug/safe_local_iterator.h
2165         (_Safe_local_iterator<>::operator->()): Likewise.
2167 2016-05-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2169         * testsuite/experimental/memory_resource/1.cc: Add required argument
2170         to dg-require-atomic-builtins.
2172 2016-05-13  Jonathan Wakely  <jwakely@redhat.com>
2174         PR libstdc++/71073
2175         * include/debug/bitset: Add #pragma GCC system_header.
2176         * include/debug/deque: Likewise.
2177         * include/debug/list: Likewise.
2178         * include/debug/map: Likewise.
2179         * include/debug/set: Likewise.
2180         * include/debug/string: Likewise.
2181         * include/debug/unordered_map: Likewise.
2182         * include/debug/unordered_set: Likewise.
2183         * include/debug/vector: Likewise.
2184         * include/debug/functions.h: Adjust whitespace.
2186 2016-05-12  Jonathan Wakely  <jwakely@redhat.com>
2188         PR libstdc++/71081
2189         * testsuite/experimental/memory_resource/1.cc: Require atomics.
2191 2016-05-11  Jonathan Wakely  <jwakely@redhat.com>
2193         PR libstdc++/71049
2194         * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2195         exception constructors with __sso_string parameters.
2197 2016-05-10  Jonathan Wakely  <jwakely@redhat.com>
2199         * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2200         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2201         Test begin and end functions.
2202         * testsuite/experimental/filesystem/iterators/
2203         recursive_directory_iterator.cc: Likewise.
2205         PR libstdc++/71038
2206         * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2207         * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2209         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2210         Overload operator* to move from rvalues.
2212         PR libstdc++/71036
2213         * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2214         * testsuite/experimental/filesystem/operations/create_directory.cc:
2215         New test.
2217         PR libstdc++/71037
2218         * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2219         base path to exception.
2220         * testsuite/experimental/filesystem/operations/canonical.cc: Test
2221         paths contained in exception.
2223         * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2224         using declaration.
2226         PR libstdc++/71005
2227         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2228         New type.
2229         (directory_iterator::operator++(int)): Return proxy.
2230         (recursive_directory_iterator::operator++(int)): Likewise.
2231         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2232         Test post-increment.
2233         * testsuite/experimental/filesystem/iterators/
2234         recursive_directory_iterator.cc: Likewise.
2236 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
2238         PR libstdc++/71004
2239         * testsuite/experimental/filesystem/iterators/
2240         recursive_directory_iterator.cc: Fix test02 to not call member
2241         functions on invalid iterator, and use VERIFY not assert.
2243 2016-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2245         Avoid endless run-time recursion for copying single-element
2246         tuples where the element type is by-value constructible
2247         from any type.
2248         * include/std/tuple (_NotSameTuple): New.
2249         * include/std/tuple (tuple(_UElements&&...): Use it.
2250         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2252 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
2254         PR libstdc++/71004
2255         * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2256         Initialize scalar member variables in default constructor.
2257         * testsuite/experimental/filesystem/iterators/
2258         recursive_directory_iterator.cc: Test default construction.
2260 2016-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2262         * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2264 2016-05-05  Jonathan Wakely  <jwakely@redhat.com>
2266         * testsuite/experimental/filesystem/path/native/string.cc: Add
2267         dg-require-filesystem-ts directive.
2269 2016-05-04  Jonathan Wakely  <jwakely@redhat.com>
2271         PR libstdc++/70940
2272         * include/experimental/memory_resource
2273         (__resource_adaptor_imp::do_allocate): Do not default-construct
2274         rebound allocator.
2275         (__resource_adaptor_imp::do_deallocate): Likewise. Use
2276         allocator_traits to get pointer type.
2277         (__null_memory_resource::do_allocate): Remove unused parameters.
2278         (__null_memory_resource::do_deallocate): Likewise.
2279         (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2280         * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2281         * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2282         move to ...
2283         * testsuite/experimental/memory_resource/1.cc: Here.
2284         * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2285         * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2287 2016-04-29  Chris Gregory  <czipperz@gmail.com>
2289         * config/*: Remove trailing whitespace.
2290         * src/*: Likewise.
2291         * testsuite/tr1/*: Likewise.
2292         * testsuite/util/*: Likewise.
2294 2016-04-28  Jonathan Wakely  <jwakely@redhat.com>
2296         PR libstdc++/70766
2297         * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2298         __addressof.
2299         * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
2300         Likewise.
2301         * include/std/atomic (atomic<_Tp>): Likewise.
2302         * include/std/shared_mutex (shared_lock): Likewise.
2303         * testsuite/24_iterators/istream_iterator/70766.cc: New test.
2304         * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
2305         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
2306         * testsuite/29_atomics/atomic/70766.cc: New test.
2307         * testsuite/30_threads/shared_lock/70766.cc: New test.
2309         * include/bits/hashtable_policy.h (__detail::_Insert_base,
2310         __detail::_Insert): Improve comments.
2312 2016-04-27  Jonathan Wakely  <jwakely@redhat.com>
2314         PR libstdc++/70767
2315         * include/std/limits: Update comments about DRs.
2316         (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
2317         numeric_limits<const volatile _Tp>): Define unconditionally.
2319 2016-04-24  Jonathan Wakely  <jwakely@redhat.com>
2321         PR libstdc++/70762
2322         * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
2323         static counter to return a different path on every call.
2325 2016-04-22  Tim Shen  <timshen@google.com>
2327         PR libstdc++/70745
2328         * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
2329         Fix the match_not_bow and match_not_eow behavior.
2330         * testsuite/28_regex/regression.cc: Add testcase.
2332 2016-04-20  Jonathan Wakely  <jwakely@redhat.com>
2334         PR libstdc++/69703
2335         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
2336         __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
2338 2016-04-19  Jonathan Wakely  <jwakely@redhat.com>
2340         PR libstdc++/69703
2341         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
2342         Override endianness bit in mode.
2343         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
2344         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
2345         that little_endian mode is ignored.
2346         * testsuite/experimental/filesystem/path/native/string.cc: New test.
2348         PR libstdc++/70609
2349         * src/filesystem/ops.cc (close_fd): New function.
2350         (do_copy_file): Set permissions before copying file contents. Check
2351         result of closing file descriptors. Don't copy streambuf when file
2352         is empty.
2353         (copy(const path&, const path&, copy_options, error_code&)): Use
2354         lstat for source file when copy_symlinks is set.
2355         * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
2357         * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
2358         operator~ operator&=, operator|=, operator^=): Add noexcept to
2359         overloaded operators for copy_options, perms and directory_options.
2360         * src/filesystem/ops.cc (make_file_type, make_file_status,
2361         is_not_found_errno, file_time): Add noexcept.
2363 2016-04-19  Edward Smith-Rowland  <3dw4rd@verizon.net>
2365         * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
2367 2016-04-18  Jonathan Wakely  <jwakely@redhat.com>
2369         PR libstdc++/41759
2370         * include/bits/random.h: Reword static assertion messages to state
2371         positive conditions.
2372         * include/bits/random.tcc: Likewise.
2373         * include/bits/uniform_int_dist.h: Likewise.
2374         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2375         patterns.
2377         * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
2379         * config/cpu/sh/atomicity.h: Fix typo in comment.
2381         PR libstdc++/70294
2382         * include/std/thread (operator<, operator==): Move definitions to
2383         namespace-scope.
2384         * testsuite/30_threads/thread/id/70294.cc: New test.
2386         * testsuite/18_support/bad_exception/23591_thread-1.c: Add
2387         -Wno-pedantic to dg-options.
2388         * testsuite/20_util/align/2.cc: Use type as operand of alignof.
2389         * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
2390         to dg-options.
2391         * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
2392         Remove extra semi-colon.
2393         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2394         Always supply second argument to static_assert.
2395         * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
2396         semi-colon.
2397         * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
2398         dg-options.
2399         * testsuite/26_numerics/complex/literals/values.cc: Likewise.
2400         * testsuite/29_atomics/atomic/60695.cc: Likewise.
2401         * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
2402         alignof when operand is an object not a type.
2403         * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
2404         * testsuite/decimal/make-decimal.cc: Likewise.
2405         * testsuite/experimental/type_traits/value.cc: Always supply second
2406         argument to static_assert.
2407         * testsuite/util/testsuite_common_types.h: Use __extension__ for
2408         __int128 types.
2410         * testsuite/experimental/type_erased_allocator/1.cc: Don't include
2411         internal header.
2412         * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
2413         * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
2414         * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
2415         Likewise. Add licence and change to compile-only test.
2417         * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
2418         unused parameter.
2419         * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
2421         * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
2422         warnings.
2424 2016-04-17  Edward Smith-Rowland  <3dw4rd@verizon.net>
2426         * include/bits/specfun.h: Trivial comment misspelling.
2428 2016-04-14  Jason Merrill  <jason@redhat.com>
2430         Revert Jonathan's empty ABI change from yesterday.
2432 2016-04-13  Martin Sebor  <msebor@redhat.com>
2434         PR c++/69517
2435         * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
2436         upper bound is positive.
2438 2016-04-13  Jonathan Wakely  <jwakely@redhat.com>
2440         * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
2441         _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
2442         * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
2443         of functions taking empty structs by value. Add a template parameter
2444         to overloads without hints. Rename overloads with hints to
2445         _M_emplace_hint.
2446         (_Hashtable::_M_erase(true_type, const_iterator),
2447         _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
2448         by reordering parameters.
2449         * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
2450         _M_emplace_hint instead of _M_emplace.
2451         * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
2452         shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
2453         * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
2454         __shared_ptr): Likewise.
2455         * include/bits/stl_algo.h (replace_if): Likewise.
2456         * include/bits/stl_pair.h (piecewise_construct_t,
2457         piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
2458         * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
2459         __uses_alloc0): Likewise.
2460         * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
2461         * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
2462         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2463         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
2464         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2465         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
2466         * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
2468 2016-04-12  Edward Smith-Rowland  <3dw4rd@verizon.net>
2470         Document C++17/TR29124 C++ Special Math Functions.
2471         * include/bits/specfun.h: Add Doxygen markup.
2473 2016-04-07  Jonathan Wakely  <jwakely@redhat.com>
2475         * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
2477 2016-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2479         * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
2480         * src/Makefile.in: Regenerate.
2482 2016-04-05  Jonathan Wakely  <jwakely@redhat.com>
2484         PR libstdc++/70554
2485         * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
2486         __atomic_fetch_add for bool.
2487         * configure: Regenerate.
2489         * testsuite/30_threads/thread/70503.cc: Require -static to work.
2491         PR libstdc++/70503
2492         * src/c++11/thread.cc (execute_native_thread_routine,
2493         execute_native_thread_routine_compat): Give internal linkage.
2494         * testsuite/30_threads/thread/70503.cc: New test.
2496 2016-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
2498         PR libstdc++/70437
2499         * include/bits/stl_pair.h (_ConstructiblePair,
2500         _ImplicitlyConvertiblePair, _MoveConstructiblePair,
2501         _ImplicitlyMoveConvertiblePair): Add shortcut conditions
2502         for same-type cases.
2503         * testsuite/20_util/pair/70437.cc: New.
2505 2016-03-24  Jonathan Wakely  <jwakely@redhat.com>
2507         PR libstdc++/69945
2508         * config/abi/pre/gnu.ver: Add new symbol.
2509         * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
2510         * testsuite/18_support/free_eh_pool.cc: New test.
2512 2016-03-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2514         * include/Makefile.am (install-freestanding-headers): Add
2515         concept_check.h and move.h to the installed headers.
2516         * include/Makefile.in: Regenerated.
2517         * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
2518         freestanding implementations.
2519         * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
2520         that this macro has no effect for freestanding implementations.
2521         * doc/html/manual/using_macros.html: Likewise.
2523 2016-02-24  Jonathan Wakely  <jwakely@redhat.com>
2525         PR libstdc++/69939
2526         * include/experimental/tuple (__apply_impl): Qualify get and forward.
2528 2016-02-23  Jonathan Wakely  <jwakely@redhat.com>
2530         * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
2531         * doc/html/*: Regenerate.
2533         PR libstdc++/69893
2534         * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
2535         exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
2536         llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
2537         nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
2538         trunc) [__cplusplus >= 201103L]: Import from namespace std.
2539         (fabs) [__cplusplus < 201103L]: Import from namespace std.
2540         * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
2541         Likewise.
2542         * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
2543         namespace before including TR1 headers.
2544         * testsuite/tr1/headers/c++200x/math.cc: New test.
2546 2016-02-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2548         PR libstdc++/69881
2549         * include/c_global/cstdarg: Undefine __need___va_list.
2550         * include/c_global/cstddef: Undefine all kinds of __need_*.
2552 2016-02-16  Tim Shen  <timshen@google.com>
2554         PR libstdc++/69794
2555         * include/bits/regex_scanner.h: Add different special character
2556         sets for grep and egrep regex.
2557         * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
2558         * testsuite/28_regex/regression.cc: Add new testcase.
2560 2016-02-08  Jonathan Wakely  <jwakely@redhat.com>
2562         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
2563         added 'constexpr' in previous commit.
2564         * configure: Regenerate.
2566         PR libstdc++/48891
2567         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
2568         checks for all targets except *-*-solaris2.* and ensure we find the
2569         libc math.h header not our own.
2570         * configure: Regenerate.
2572 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2574         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
2575         New file.  Copied over from s390-linux-gnu.
2577 2016-02-04  Jonathan Wakely  <jwakely@redhat.com>
2579         PR libstdc++/69626
2580         * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
2581         with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
2582         * config.h.in: Regenerate.
2583         * configure: Regenerate.
2584         * testsuite/21_strings/c_strings/char/69626.cc: New.
2586         * doc/html/index.html: Regenerate.
2588         * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
2589         * doc/xml/manual/spine.xml: Update copyright years and author blurb.
2590         * doc/html/*: Regenerate.
2592 2016-02-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2594         PR libstdc++/69581
2595         * include/c_compatibility/math.h: Move header guards.
2596         * include/c_compatibility/stdlib.h: Likewise.
2598 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
2600         PR libstdc++/69506
2601         * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2603 2016-01-28  John David Anglin  <danglin@gcc.gnu.org>
2605         PR libstdc++/69450
2606         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
2607         isinf and isnan functions into two independent checks.  Check on hpux.
2608         * config.h.in: Regenerate.
2609         * configure: Regenerate.
2610         * include/c_global/cmath (isinf(double), isnan(double)): Use
2611         _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
2612         respectively.
2614 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
2616         * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
2618 2016-01-27  Jonathan Wakely  <jwakely@redhat.com>
2620         PR libstdc++/69295
2621         * testsuite/ext/special_functions/hyperg/check_value.cc: Use
2622         -ffp-contract=off, and -ffloat-store to disable excess precision.
2623         * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
2624         -ffp-contract=off.
2626 2016-01-26  Jonathan Wakely  <jwakely@redhat.com>
2628         PR libstdc++/69478
2629         * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
2630         random_access_iterator_tag>): Check is_move_assignable when moving.
2631         (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
2632         Likewise.
2633         * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
2634         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
2635         * testsuite/25_algorithms/move/69478.cc: New.
2636         * testsuite/25_algorithms/move_backward/69478.cc: new.
2638 2016-01-26  Andris Pavenis  <andris.pavenis@iki.fi>
2640         * include/c_compatibility/stdlib.h: Include wide character related
2641         definitions only when they are available in cstdlib.
2643 2016-01-25  Jonathan Wakely  <jwakely@redhat.com>
2645         PR libstdc++/69464
2646         * include/Makefile.am: Add new header.
2647         * include/Makefile.in: Regenerate.
2648         * include/bits/random.h (uniform_int_distribution): Move to
2649         bits/uniform_int_dist.h.
2650         * include/bits/random.tcc (uniform_int_distribution::operator(),
2651         uniform_int_distribution::__generate_impl): Likewise.
2652         * include/bits/uniform_int_dist.h: New header.
2653         * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
2654         <bits/uniform_int_dist.h> instead of <random>.
2655         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
2656         move_iterators/1.cc: Include correct header for uninitialized_copy.
2657         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
2658         move_iterators/1.cc: Likewise.
2659         * testsuite/25_algorithms/nth_element/58800.cc: Include correct
2660         header for vector.
2661         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
2663 2016-01-23  John David Anglin  <danglin@gcc.gnu.org>
2665         PR libstdc++/69446
2666         * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2668 2016-01-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
2670         TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
2671         * include/c_compatibility/math.h: Import the TR29124 functions
2672         into the global namespace.
2673         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
2674         xfail and make compile-only.
2675         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
2676         * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
2677         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
2678         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
2679         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
2680         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
2681         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
2682         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
2683         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
2684         * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
2685         * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
2686         * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
2687         * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
2688         * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
2689         * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
2690         * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
2691         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
2692         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
2693         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
2694         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
2696 2016-01-22  Jonathan Wakely  <jwakely@redhat.com>
2698         PR libstdc++/69116
2699         * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
2700         define result_type for types which can be safely used with valarrays.
2701         * testsuite/26_numerics/valarray/69116.cc: New.
2703         PR libstdc++/69413
2704         * config/os/gnu-linux/os_defines.h: Define
2705         _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
2706         * include/c_global/cmath (isinf, isnan): Check it.
2707         * doc/xml/manual/internals.xml: Document it.
2708         * doc/html/*: Regenerate.
2710 2016-01-21  Jonathan Wakely  <jwakely@redhat.com>
2712         PR libstdc++/69406
2713         * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
2714         * include/ext/type_traits.h: Likewise.
2715         * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
2716         for presence of C headers.
2717         * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
2718         dg-error line number.
2719         * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
2720         * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
2721         * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
2723 2016-01-20  Torvald Riegel  <triegel@redhat.com>
2725         PR libstdc++/69310
2726         * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2728 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
2730         PR libstdc++/60401
2731         * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
2732         copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
2733         lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
2734         nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
2735         tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
2736         Add using declarations.
2737         * testsuite/26_numerics/headers/cmath/60401.cc: New.
2739         PR libstdc++/69386
2740         * include/c_global/ccomplex: Ensure C++ language linkage.
2741         * include/c_global/cmath: Likewise.
2742         * include/c_global/cstdlib: Likewise.
2743         * include/c_global/ctgmath: Likewise.
2744         * testsuite/17_intro/headers/c++2011/linkage.cc: New.
2746 2016-01-19  Jonathan Wakely  <jwakely@redhat.com>
2748         PR libstdc++/14608
2749         PR libstdc++/60401
2750         * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
2751         --enable-cheaders=c_global configs.
2752         * include/Makefile.in: Regenerate.
2753         * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
2754         test and allow inclusion from C files.
2755         * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
2756         (at_quick_exit, quick_exit): Add using directives.
2757         * include/c_global/cmath: Use #include_next for math.h.
2758         * include/c_global/cstdlib: Use #include_next for stdlib.h.
2759         * testsuite/26_numerics/headers/cmath/14608.cc: New.
2760         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
2761         Remove xfail for most targets.
2762         * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
2764 2016-01-18  Torvald Riegel  <triegel@redhat.com>
2766         * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
2767         (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
2768         and move after its definition.
2769         * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
2770         * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
2771         __GXX_WEAK__, and only provide transactional clones if
2772         _GLIBCXX_USE_WEAK_REF is true.  Don't provide stubs of libitm
2773         functions.
2775 2016-01-18  Jonathan Wakely  <jwakely@redhat.com>
2777         PR libstdc++/60637
2778         * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
2780         PR libstdc++/69243
2781         * include/std/functional (_Function_base::_M_not_empty_function):
2782         Change overloads for pointers to take arguments by value.
2783         * testsuite/20_util/function/cons/57465.cc: Add tests for
2784         pointer-to-member cases.
2786         PR libstdc++/69340
2787         * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
2788         Use macros for exception handling and fix unused parameter warning.
2790 2016-01-17  John David Anglin  <danglin@gcc.gnu.org>
2792         PR libstdc++/68734
2793         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
2795 2016-01-17  Torvald Riegel  <triegel@redhat.com>
2797         * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
2799 2016-01-16  H.J. Lu  <hongjiu.lu@intel.com>
2801         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
2802         __int128 symbols.
2804 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
2806         PR libstdc++/69293
2807         * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
2808         static assertion that type is constructible from the arguments.
2809         * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
2810         * testsuite/20_util/uses_allocator/69293_neg.cc: New.
2811         * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
2813         PR libstdc++/69294
2814         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
2815         and isnan on AIX. Quote variables.
2816         * configure: Regenerate.
2818 2016-01-15  Torvald Riegel  <triegel@redhat.com>
2820         * include/bits/basic_string.h (basic_string): Declare friends.
2821         * include/bits/c++config (_GLIBCXX_TXN_SAFE,
2822         _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
2823         * include/std/stdexcept (logic_error, domain_error, invalid_argument,
2824         length_error, out_of_range, runtime_error, range_error,
2825         underflow_error, overflow_error): Declare members as transaction-safe.
2826         (logic_error, runtime_error): Declare friend functions.
2827         * libsupc++/exception (exception, bad_exception): Declare members as
2828         transaction-safe.
2829         * src/c++11/cow-stdexcept.cc: Define transactional clones for the
2830         transaction-safe members of exceptions and helper functions.
2831         * libsupc++/eh_exception.cc: Adjust and define transactional clones.
2832         * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
2833         (CXXABI_1.3.10): New.
2834         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
2835         (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
2836         * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
2837         * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
2838         * include/Makefile.in: Regenerate.
2839         * config.h.in: Regenerate.
2840         * configure: Regenerate.
2841         * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
2843 2016-01-15  Steve Ellcey  <sellcey@imgtec.com>
2845         * include/ext/random.tcc: Use __builtin_isfinite instead of
2846         std::isfinite.
2848 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
2850         * include/bits/std_mutex.h: Fix Doxygen @file name.
2852 2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
2853             Jonathan Wakely  <jwakely@redhat.com>
2854             Florian Goth <CaptainSifff@gmx.de>
2856         Implement TR29124 C++ special Math Functions.
2857         * include/Makefile.am: Add new headers.
2858         * include/Makefile.in: Regenerate.
2859         * include/bits/specfun.h: New.
2860         * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
2861         * include/tr1/bessel_function.tcc: Ditto.
2862         * include/tr1/beta_function.tcc: Ditto.
2863         * include/tr1/cmath: Ditto.
2864         * include/tr1/ell_integral.tcc: Ditto.
2865         * include/tr1/exp_integral.tcc: Ditto.
2866         * include/tr1/gamma.tcc: Ditto.
2867         * include/tr1/hypergeometric.tcc: Ditto.
2868         * include/tr1/legendre_function.tcc: Ditto.
2869         * include/tr1/modified_bessel_func.tcc: Ditto.
2870         * include/tr1/poly_hermite.tcc: Ditto.
2871         * include/tr1/poly_laguerre.tcc: Ditto.
2872         * include/tr1/riemann_zeta.tcc: Ditto.
2873         * include/tr1/special_function_util.h: Ditto.
2874         * testsuite/ext/special_functions/conf_hyperg: New.
2875         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
2876         * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
2877         * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
2878         * testsuite/ext/special_functions/hyperg: New.
2879         * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
2880         * testsuite/ext/special_functions/hyperg/check_value.cc: New.
2881         * testsuite/ext/special_functions/hyperg/compile.cc: New.
2882         * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
2883         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
2884         * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
2885         * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
2886         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
2887         * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
2888         * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
2889         * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
2890         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
2891         * testsuite/special_functions/03_beta/check_nan.cc: New.
2892         * testsuite/special_functions/03_beta/check_value.cc: New.
2893         * testsuite/special_functions/03_beta/compile.cc: New.
2894         * testsuite/special_functions/03_beta/compile_2.cc: New.
2895         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
2896         * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
2897         * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
2898         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
2899         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
2900         * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
2901         * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
2902         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
2903         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
2904         * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
2905         * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
2906         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
2907         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
2908         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
2909         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
2910         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
2911         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
2912         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
2913         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
2914         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
2915         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
2916         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
2917         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
2918         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
2919         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
2920         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
2921         * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
2922         * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
2923         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
2924         * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
2925         * testsuite/special_functions/11_ellint_1/check_value.cc: New.
2926         * testsuite/special_functions/11_ellint_1/compile.cc: New.
2927         * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
2928         * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
2929         * testsuite/special_functions/12_ellint_2/check_value.cc: New.
2930         * testsuite/special_functions/12_ellint_2/compile.cc: New.
2931         * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
2932         * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
2933         * testsuite/special_functions/13_ellint_3/check_value.cc: New.
2934         * testsuite/special_functions/13_ellint_3/compile.cc: New.
2935         * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
2936         * testsuite/special_functions/14_expint/check_nan.cc: New.
2937         * testsuite/special_functions/14_expint/check_value.cc: New.
2938         * testsuite/special_functions/14_expint/compile.cc: New.
2939         * testsuite/special_functions/14_expint/compile_2.cc: New.
2940         * testsuite/special_functions/15_hermite/check_nan.cc: New.
2941         * testsuite/special_functions/15_hermite/check_value.cc: New.
2942         * testsuite/special_functions/15_hermite/compile.cc: New.
2943         * testsuite/special_functions/15_hermite/compile_2.cc: New.
2944         * testsuite/special_functions/16_laguerre/check_nan.cc: New.
2945         * testsuite/special_functions/16_laguerre/check_value.cc: New.
2946         * testsuite/special_functions/16_laguerre/compile.cc: New.
2947         * testsuite/special_functions/16_laguerre/compile_2.cc: New.
2948         * testsuite/special_functions/17_legendre/check_nan.cc: New.
2949         * testsuite/special_functions/17_legendre/check_value.cc: New.
2950         * testsuite/special_functions/17_legendre/compile.cc: New.
2951         * testsuite/special_functions/17_legendre/compile_2.cc: New.
2952         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
2953         * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
2954         * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
2955         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
2956         * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
2957         * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
2958         * testsuite/special_functions/19_sph_bessel/compile.cc: New.
2959         * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
2960         * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
2961         * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
2962         * testsuite/special_functions/20_sph_legendre/compile.cc: New.
2963         * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
2964         * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
2965         * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
2966         * testsuite/special_functions/21_sph_neumann/compile.cc: New.
2967         * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
2968         * testsuite/util/specfun_testcase.h: New.
2969         * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
2970         * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
2971         * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
2972         * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
2973         * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
2974         * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
2975         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
2977 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
2979         PR libstdc++/48891
2980         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
2981         and isnan functions.
2982         * config.h.in: Regenerate.
2983         * configure: Regenerate.
2984         * include/c_global/cmath (isinf(double), isnan(double))
2985         [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
2986         * testsuite/26_numerics/headers/cmath/48891.cc: New.
2988 2016-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2990         PR libstdc++/66006
2991         * configure.host (abi_baseline_pair): Use separate baseline for
2992         Solaris 11+ and Solaris 10 with gld.
2993         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
2994         * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
2995         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
2997 2016-01-12  Daniel Kruegler  <daniel.kruegler@gmail.com>
2999         PR libstdc++/68877
3000         * include/std/type_traits: Following N4511, reimplement __is_swappable
3001         and __is_nothrow_swappable. Move __is_swappable to namespace std,
3002         adjust callers. Use __is_nothrow_swappable in swap.
3003         * include/bits/move.h: Use __is_nothrow_swappable in swap.
3004         * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3005         __is_swappable related tests.
3006         * testsuite/20_util/is_swappable/value.cc: New.
3007         * testsuite/20_util/is_swappable/requirements/
3008         explicit_instantiation.cc: New.
3009         * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3010         * testsuite/25_algorithms/swap/68877.cc: New.
3012 2016-01-12  Jonathan Wakely  <jwakely@redhat.com>
3014         * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3016         PR libstdc++/69005
3017         PR libstdc++/69222
3018         * include/std/functional (function::_Invoke): Remove, use result_of.
3019         (function::_Callable): Replace alias template with class template
3020         and use partial specialization instead of _NotSelf alias template.
3021         (function(_Functor)): Add "not self" constraint so that _Callable is
3022         not used while type is incomplete.
3023         * testsuite/20_util/function/69222.cc: New.
3025 2016-01-11  Jonathan Wakely  <jwakely@redhat.com>
3027         PR libstdc++/60976
3028         * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3029         Define partial specialization.
3030         * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3031         destroy members to std::allocator explicit specialization.
3033 2016-01-08  Jonathan Wakely  <jwakely@redhat.com>
3035         * testsuite/26_numerics/headers/cmath/
3036         c99_classification_macros_c++.cc: Rename to ...
3037         * testsuite/26_numerics/headers/cmath/
3038         c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3039         * testsuite/26_numerics/headers/cmath/
3040         c99_classification_macros_c++0x.cc: Rename to ...
3041         * testsuite/26_numerics/headers/cmath/
3042         c99_classification_macros_c++11.cc: Here.
3044         PR libstdc++/69190
3045         * include/bits/uses_allocator.h: Add missing include.
3047 2016-01-07  Jonathan Wakely  <jwakely@redhat.com>
3049         PR libstdc++/69105
3050         PR libstdc++/69106
3051         PR libstdc++/69114
3052         * include/bits/stl_iterator.h (back_insert_iterator,
3053         front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3054         * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3055         * include/std/future (__future::base::_State_baseV2::__setter):
3056         Likewise.
3057         * include/std/scoped_allocator (__outermost): Likewise.
3058         * testsuite/20_util/scoped_allocator/69114.cc: New.
3059         * testsuite/20_util/uses_allocator/69114.cc: New.
3060         * testsuite/30_threads/promise/69106.cc: New.
3062 2016-01-06  Jonathan Wakely  <jwakely@redhat.com>
3064         PR libstdc++/69092
3065         * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3066         Remove _GLIBCXX_NOEXCEPT.
3067         testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3069         * include/Makefile.am: Adjust.
3070         * include/Makefile.in: Regenerate.
3071         * include/bits/mutex.h: Rename to bits/std_mutex.h.
3072         * include/std/condition_variable: Adjust include.
3073         * include/std/mutex: Likewise.
3075 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
3077         Update copyright years.
3079 Copyright (C) 2016 Free Software Foundation, Inc.
3081 Copying and distribution of this file, with or without modification,
3082 are permitted in any medium without royalty provided the copyright
3083 notice and this notice are preserved.