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
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
28 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
29 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
31 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
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
41 * testsuite/23_containers/set/move_comparison.cc: New test.
43 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
46 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
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:
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>
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>
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
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.
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.
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
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
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):
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>
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
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.
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:
246 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
247 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
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
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
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
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
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>
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
348 * doc/xml/manual/build_hacking.xml: Improve markup.
349 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
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
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
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
408 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
409 expected signatures for C++14 compatibility.
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)):
424 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
426 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
428 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
430 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
432 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
434 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
436 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
438 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
440 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
442 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
444 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
447 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
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&&...)):
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
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
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>
497 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
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>
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)):
517 (compare(size_type, size_type,__sv_type, size_type, size_type)):
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.
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
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
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
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
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:
599 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
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:
612 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
614 (__invoke_impl): Remove unused template parameters.
615 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
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
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
639 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
641 (owner_less<void>): Define specialization.
642 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
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
662 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
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
687 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
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:
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
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:
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:
718 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
720 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
722 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
724 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
726 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
729 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
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:
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
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:
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:
758 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
760 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
761 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
763 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
765 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
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:
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:
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:
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:
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:
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:
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:
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:
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
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
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:
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
914 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
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:
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:
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
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.
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:
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:
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):
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:
1010 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1011 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
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:
1026 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
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:
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
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:
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:
1109 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1111 * testsuite/23_containers/list/requirements/dr438/
1112 constructor_1_neg.cc: Likewise.
1113 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1115 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
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:
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:
1131 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1132 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
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
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.
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)):
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)):
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:
1182 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1184 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1186 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1188 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1190 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1192 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1194 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1196 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1198 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1200 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1202 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
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:
1215 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1217 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1219 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1221 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1223 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1225 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1227 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
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:
1235 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1237 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1239 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1241 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1243 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1245 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1247 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1249 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1251 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1253 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1255 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1257 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1259 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1261 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1263 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1265 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1267 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1269 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1271 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1273 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1275 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1277 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1279 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1281 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1283 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1285 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1287 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1289 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1291 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1293 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1295 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1297 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1299 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
1300 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1302 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1304 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1306 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1308 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1310 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1312 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1314 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1316 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
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>
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:
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:
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
1391 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
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
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
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/
1439 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
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
1456 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
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):
1472 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
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
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&&...)):
1490 (operator=(const any&)): Likewise.
1491 (operator=(any&&)): Likewise.
1492 (operator=(_ValueType&&)): Constrain.
1493 (emplace(_Args&&...)): New.
1494 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1497 (swap(any&)): 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.
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>
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
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):
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&)):
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)):
1659 (replace(size_type, size_type, const basic_string&, size_type,
1660 size_type)): Likewise.
1661 (replace(__const_iterator, __const_iterator, const basic_string&)):
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
1671 (find(const _CharT*, size_type, size_type)): Use data instead of
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:
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>
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
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):
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>
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:
1827 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
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
1851 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
1853 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
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:
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>
1878 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
1881 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
1883 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
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>
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
1909 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
1910 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
1912 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
1913 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
1916 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
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:
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:
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:
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:
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
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):
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)):
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
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>
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
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>
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.
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
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:
2143 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2145 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2147 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2149 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
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
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>
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>
2189 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2191 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
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.
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.
2213 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2214 * testsuite/experimental/filesystem/operations/create_directory.cc:
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
2227 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
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>
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
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>
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>
2272 * include/experimental/memory_resource
2273 (__resource_adaptor_imp::do_allocate): Do not default-construct
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
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.
2291 * testsuite/tr1/*: Likewise.
2292 * testsuite/util/*: Likewise.
2294 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
2297 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2299 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
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>
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>
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>
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>
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>
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.
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
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>
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
2377 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
2379 * config/cpu/sh/atomicity.h: Fix typo in comment.
2382 * include/std/thread (operator<, operator==): Move definitions to
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
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
2397 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
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
2410 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
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
2419 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
2421 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
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>
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
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>
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.
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>
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>
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>
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.
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]:
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>
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>
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.
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>
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>
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>
2601 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2603 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
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,
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>
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
2626 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
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>):
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>
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
2661 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
2663 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
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>
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.
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>
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>
2726 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
2728 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
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.
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>
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
2775 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
2778 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
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.
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>
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
2804 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
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.
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
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
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>
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>
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>
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.
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>
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.
3045 * include/bits/uses_allocator.h: Add missing include.
3047 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
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):
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>
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.