Tim Shen
4aebb4e4a6
re PR libstdc++/77356 (regex error for a ECMAScript syntax string)
...
PR libstdc++/77356
* include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
_M_expression_term): Modify to support dash literal.
* include/bits/regex_scanner.h: Add dash as a token type to make
a different from the mandated dash literal by escaping.
* include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
token in bracket expression parsing.
* testsuite/28_regex/regression.cc: Add new testcases.
From-SVN: r239794
2016-08-27 02:03:23 +00:00
Jonathan Wakely
10491e4c04
libstdc++/51960 move-construction for raw_storage_iterator
...
PR libstdc++/51960
* doc/xml/manual/intro.xml: Document DR 2127 change.
* doc/html/*: Regenerate.
* include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
(operator++(), operator++(int)): Use injected class name.
* testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
From-SVN: r239781
2016-08-26 14:11:29 +01:00
Jonathan Wakely
52066eae5d
Use effective-target instead of -std options
...
* testsuite/*: Use { target c++11 } or { target c++14 } instead of
using -std in dg-options.
From-SVN: r239777
2016-08-26 12:41:37 +01:00
Jonathan Wakely
e8223484b3
Restore dg-interpreter-batch-mode for libstdc++ tests
...
2016-08-26 Jonathan Wakely <jwakely@redhat.com>
Pedro Alves <palves@redhat.com>
* testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
and restore dg-interpreter-batch-mode.
* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
gdb-dg-runtest instead of dg-runtest.
* testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
Co-Authored-By: Pedro Alves <palves@redhat.com>
From-SVN: r239776
2016-08-26 12:35:58 +01:00
Jonathan Wakely
86bbf15b6b
Add new std::basic_string constructor (LWG 2583)
...
* config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
precise patterns for basic_string constructors.
(GLIBCXX_3.4.23): Export new constructors.
* doc/xml/manual/intro.xml: Document LWG 2583 status.
* doc/html/*: Regenerate.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string(const basic_string&, size_type, const Alloc&)): Add
new constructor for LWG 2583.
(basic_string(const basic_string&, size_type, size_type)): Remove
default argument.
[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
* testsuite/21_strings/basic_string/cons/char/8.cc: New test.
* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
From-SVN: r239773
2016-08-26 11:41:37 +01:00
Aditya Kumar
9a38acdfdc
Remove trailing whitespace in C++ headers
...
2016-08-24 Aditya Kumar <hiraditya@msn.com>
* include/bits/algorithmfwd.h: Remove trailing whitespace.
* include/bits/shared_ptr_base.h: Likewise.
From-SVN: r239731
2016-08-24 09:03:01 +01:00
Jonathan Wakely
e90a801017
Add C++17 constexpr to debug and profile mode arrays
...
* include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
* include/profile/array (array): Likewise.
(array::swap): Fix exception specification for zero-sized arrays.
From-SVN: r239705
2016-08-23 16:54:57 +01:00
Jonathan Wakely
5ea387db6c
libstdc++/77334 move assign RB trees of non-copyable types
...
PR libstdc++/77334
* include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
(_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
* testsuite/23_containers/map/77334.cc: New test.
From-SVN: r239698
2016-08-23 14:15:12 +01:00
Jonathan Wakely
5d1c6b3e76
Remove reference to -pthreads option in libstdc++ manual
...
* doc/xml/manual/using.xml: Remove reference to -pthreads option.
* doc/html/*: Regenerate.
From-SVN: r239693
2016-08-23 11:13:36 +01:00
Jonathan Wakely
457c4a3fd2
Use dg-do preprocess instead of compile for tests
...
* testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
* testsuite/experimental/feat-lib-fund.cc: Likewise.
From-SVN: r239692
2016-08-23 11:13:31 +01:00
Jonathan Wakely
b405d54fcd
Implement resolution of LWG DR 685 precisely
...
PR libstdc++/71771
* include/bits/stl_iterator.h
(operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
define for C++98 mode.
(operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
* testsuite/24_iterators/headers/iterator/synopsis.cc: Use
-std=gnu++98.
* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
* testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
difference operator.
* testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
difference operator for C++98.
* testsuite/24_iterators/reverse_iterator/71771.cc: New test.
From-SVN: r239691
2016-08-23 11:13:26 +01:00
Jonathan Wakely
06db992005
Add constexpr to <iterator> and <array> for C++17
...
* include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
* include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
(crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
* include/bits/stl_iterator.h (reverse_iterator, move_iterator)
(__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
Likewise.
* include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
_GLIBCXX14_CONSTEXPR.
(distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
* include/std/array (array::begin, array::end, array::rbegin)
(array::rend, array::cbegin, array:cend, array::crbegin)
(array::crend, array::operator[], array::at, array::front)
(array::back, array::data): Likewise.
* testsuite/24_iterators/headers/iterator/range_access.cc: Replace
with separate tests for C++11, C++14, and C++17.
* testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
* testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
* testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
From-SVN: r239690
2016-08-23 11:13:12 +01:00
Tim Shen
d79d625275
Split _M_dfs() into smaller functions.
...
* regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
(_M_handle_subexpr_end, _M_handle_line_begin_assertion)
(_M_handle_line_end_assertion, _M_handle_word_boundary)
(_M_handle_subexpr_lookahead, _M_handle_match)
(_M_handle_backref, _M_handle_accept, _M_handle_alternative):
Add separate function declarations.
* regex_executor.tcc: Split _M_dfs() into multiple handler functions.
From-SVN: r239673
2016-08-22 19:50:15 +00:00
Gleb Natapov
27abac2648
libstdc++/68297 avoid throw/catch in make_exception_ptr
...
2016-08-22 Gleb Natapov <gleb@scylladb.com>
PR libstdc++/68297
* config/abi/pre/gnu-versioned-namespace.ver: Export
__cxa_init_primary_exception and std::exception_ptr(void*).
* config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
export __cxa_init_primary_exception and std::exception_ptr(void*).
* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Add new headers.
* libsupc++/Makefile.in: Regenerate.
* libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
* libsupc++/cxxabi_init_exception.h: New header.
(__cxa_init_primary_exception): Declare.
* libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
(__cxa_throw): Use __cxa_init_primary_exception.
* libsupc++/exception (std::exception): Move to ...
* libsupc++/exception.h: New header.
* libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
friend declaration.
(__exception_ptr::__dest_thunk): New function template.
(std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
Use __cxa_allocate_exception and __cxa_init_primary_exception to
create exception_ptr.
* libsupc++/typeinfo: Include bits/exception.h instead of exception.
* testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
From-SVN: r239664
2016-08-22 18:29:31 +01:00
Jonathan Wakely
4c86ffccf9
Update links to libstdc++ Doxygen pages
...
* doc/xml/api.xml: Replace hardcoded links for specific versions with
link to docs for all releases.
* doc/html/*: Regenerate.
From-SVN: r239663
2016-08-22 17:47:39 +01:00
Jonathan Wakely
94f54d47ca
Add noexcept to std::function swap
...
PR libstdc++/77322
* doc/xml/manual/intro.xml: Document DR 2062 change.
* include/std/functional (function::swap): Add noexcept.
(swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
* testsuite/20_util/function/77322.cc: New test.
From-SVN: r239662
2016-08-22 17:47:34 +01:00
Jonathan Wakely
71c54f8ea2
Simplify dg-options for tests using pthreads
...
* testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
*-*-solaris* instead of -pthreads.
* testsuite/21_strings/basic_string/pthread4.cc : Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/shared_mutex/*: Likewise.
* testsuite/ext/rope/pthread7-rope.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/
default_weaktoshared.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/
mutex_weaktoshared.cc: Likewise.
* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
dg-require-effective-target instead of using -std option.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
Likewise.
* testsuite/30_threads/async/*: Likewise.
* testsuite/30_threads/call_once/*: Likewise.
* testsuite/30_threads/condition_variable/*: Likewise.
* testsuite/30_threads/condition_variable_any/*: Likewise.
* testsuite/30_threads/future/*: Likewise.
* testsuite/30_threads/lock/*: Likewise.
* testsuite/30_threads/mutex/*: Likewise.
* testsuite/30_threads/packaged_task/*: Likewise.
* testsuite/30_threads/promise/*: Likewise.
* testsuite/30_threads/recursive_mutex/*: Likewise.
* testsuite/30_threads/recursive_timed_mutex/*: Likewise.
* testsuite/30_threads/shared_future/*: Likewise.
* testsuite/30_threads/shared_lock/*: Likewise.
* testsuite/30_threads/shared_timed_mutex/*: Likewise.
* testsuite/30_threads/this_thread/*: Likewise.
* testsuite/30_threads/thread/*: Likewise.
* testsuite/30_threads/timed_mutex/*: Likewise.
* testsuite/30_threads/try_lock/*: Likewise.
* testsuite/30_threads/unique_lock/*: Likewise.
From-SVN: r239624
2016-08-19 17:36:07 +01:00
Jonathan Wakely
e6ee5bfd68
Define std::not_fn for C++17
...
* doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
* doc/html/*: Regenerate.
* include/experimental/functional (_Not_fn, not_fn): Match C++17
semantics.
* include/std/functional (_Not_fn, not_fn): Define for C++17.
* testsuite/20_util/not_fn/1.cc: New.
* testsuite/experimental/functional/not_fn.cc: Test abstract class.
Remove test for volatile-qualified wrapper.
From-SVN: r239623
2016-08-19 16:42:34 +01:00
Jonathan Wakely
387edf83a0
Define std::atomic<T>::is_always_lock_free for C++17
...
* include/std/atomic (atomic::is_always_lock_free): Define.
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
* testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
* testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/*: Regenerate.
From-SVN: r239622
2016-08-19 16:42:27 +01:00
Jonathan Wakely
285ee2fb11
Fix ambiguities in C++17 mode
...
* include/experimental/tuple (apply): Qualify call to __apply_impl.
* include/std/tuple (apply): Likewise.
* testsuite/experimental/system_error/value.cc: Fix ambiguities in
C++17 mode.
* testsuite/experimental/tuple/tuple_size.cc: Likewise.
* testsuite/experimental/type_traits/value.cc: Likewise.
From-SVN: r239621
2016-08-19 16:42:11 +01:00
Jonathan Wakely
1f4ed04ed8
Update C++17 library status table
...
* doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
and variant.
* doc/html/*: Regenerate.
From-SVN: r239608
2016-08-19 09:16:13 +01:00
Ville Voutilainen
a577f786b6
Implement the latest proposed resolution of LWG 2756.
...
* include/std/optional (Optional_base(const _Tp&))
(Optional_base(_Tp&&), using _Base::_Base): Remove.
(optional(nullopt_t)): New.
(optional(_Up&&)): Invoke base directly with in_place
rather than creating a temporary, add default template
argument, change constraints.
(optional(const optional<_Up>&)): Invoke base directly
with in_place, remove unnecessary constraints.
(optional(optional<_Up>&& __t)): Likewise.
(optional(in_place_t, _Args&&...)): New.
(optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
(operator=(_Up&&)): Add default template argument, change constraints.
(operator=(const optional<_Up>&)): Put is_same first in the
constraints.
(operator=(optional<_Up>&&)): Likewise.
* testsuite/20_util/optional/assignment/5.cc: Add a test to
verify assignment from something that can't be perfect-forwarded.
* testsuite/20_util/optional/cons/value.cc: Add tests to verify
that a nested optional is disengaged when constructed
from a disengaged element type, and to verify that assignments
from an engaged element type engage the optional.
From-SVN: r239593
2016-08-18 23:33:57 +03:00
Tim Shen
197c757cb1
Implement <variant>
...
* include/Makefile.am: Add new file std/variant.
* include/Makefile.in: Generated from Makefile.am.
* include/bits/enable_special_members.h: Add a tag type to allow
the construction in non-default constructor.
* include/bits/uses_allocator.h: Add convenience traits to
detect constructibility.
* include/std/variant: Implement <variant>.
* testsuite/20_util/variant/compile.cc: Compile-time tests.
* testsuite/20_util/variant/run.cc: Runtime tests.
From-SVN: r239590
2016-08-18 20:31:26 +00:00
Jonathan Wakely
0b224dcf60
Expand libstdc++ docs on testing
...
* doc/xml/manual/test.xml (test.run.permutations): Expand section.
(test.new_tests): Rewrite section.
(tests.dg.directives): New section.
* doc/html/*: Regenerate.
From-SVN: r239574
2016-08-18 14:47:42 +01:00
Jonathan Wakely
b56d48ef86
Improve documentation of libstdc++ test targets
...
* doc/xml/manual/test.xml: Improve documentation of test targets.
Document new-abi-baseline, check-debug, and check-parallel targets.
From-SVN: r239573
2016-08-18 14:47:37 +01:00
Jonathan Wakely
409d55557b
Document libstdc++.so versioning in manual
...
* doc/xml/manual/build_hacking.xml: New section on shared library
versioning.
From-SVN: r239572
2016-08-18 14:47:33 +01:00
Jonathan Wakely
a8107a983f
Improve markup in libstdc++ manual
...
* doc/xml/manual/build_hacking.xml: Improve markup.
* doc/xml/manual/test.xml: Likewise. Change section title from "Test"
to "Testing".
* doc/xml/faq.xml: Change link text to "Testing".
From-SVN: r239571
2016-08-18 14:47:28 +01:00
Jonathan Wakely
6cb9849199
Remove unintended dg-options directive
...
* testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
dg-options directive.
From-SVN: r239564
2016-08-18 10:58:28 +01:00
Jonathan Wakely
6fbf26cc57
Fix invalid dg-do directive
...
* testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
directive and use effective target instead of dg-options.
From-SVN: r239548
2016-08-17 20:58:44 +01:00
Jonathan Wakely
18a20f3f25
Use effective target instead of -std in dg-options
...
* testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
instead of -std in dg-options.
* testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
* testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
* testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
* testsuite/20_util/hash/quality.cc: Likewise.
* testsuite/25_algorithms/heap/moveable.cc: Likewise.
* testsuite/25_algorithms/heap/moveable2.cc: Likewise.
* testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
* testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
* testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
* testsuite/25_algorithms/sort/random_test.cc: Likewise.
From-SVN: r239547
2016-08-17 20:43:13 +01:00
Jonathan Wakely
f771720378
Add c++11 effective target to tests for C++11 features
...
* testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
* testsuite/27_io/rvalue_streams.cc: Likewise.
From-SVN: r239545
2016-08-17 20:23:15 +01:00
Jonathan Wakely
e30c6e0c14
Add comment explaining why -std=c++14 is needed.
...
* testsuite/26_numerics/complex/literals/types.cc: Add comment.
From-SVN: r239543
2016-08-17 17:09:15 +01:00
Jonathan Wakely
e07f4b008d
Remove duplicate dg-options directive
...
* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
Remove duplicate dg-options directive.
From-SVN: r239538
2016-08-17 15:11:20 +01:00
Jonathan Wakely
37144e84aa
Adjust DG directives in libstdc++ Profile Mode test
...
* testsuite/ext/profile/all.cc: Use effective target instead of
-std=gnu++11. Use dg-additional-options instead of repeating options.
From-SVN: r239536
2016-08-17 14:39:14 +01:00
Jonathan Wakely
8fe79e7334
Adjust DG directives in libstdc++ XFAIL test
...
* testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
-std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
instead of dg-excess-errors.
From-SVN: r239535
2016-08-17 14:39:10 +01:00
Jonathan Wakely
c42966921a
Adjust testcases for C++17 compatibility
...
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
test for C++17.
* testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
* testsuite/experimental/ratio/value.cc: Likewise.
* testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
C++17.
* testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
* testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
C++17 compatibility.
From-SVN: r239534
2016-08-17 14:39:05 +01:00
Jonathan Wakely
ba364478df
Adjust testcase for C++14 compatibility
...
* testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
expected signatures for C++14 compatibility.
From-SVN: r239533
2016-08-17 14:38:58 +01:00
Jonathan Wakely
657213f736
PR 77264 constrain new std::basic_string overloads
...
PR libstdc++/77264
* include/bits/basic_string.h (operator=(__sv_type)
(append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
(replace(size_type, size_type, __sv_type))
(replace(const_iterator, const_iterator, __sv_type))
(find(__sv_type, size_type), rfind(__sv_type, size_type))
(compare(size_type, size_type, __sv_type)): Reformat.
(_If_sv): Define helper for SFINAE constaints.
(append(const _Tp&, size_type, size_type))
(assign(const _Tp&, size_type, size_type))
(insert(size_type, const _Tp&, size_type, size_type))
(replace(size_type, size_type, const _Tp&, size_type, size_type)):
Use _If_sv.
* testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
SFINAE constraints.
* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
Likewise.
From-SVN: r239532
2016-08-17 14:38:52 +01:00
Jonathan Wakely
32917686b0
PR 72847 Prevent double-free in std::vector<bool>
...
PR libstdc++/72847
* include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
pointers to start and end of storage.
* testsuite/23_containers/vector/bool/72847.cc: New test.
* include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
_M_finish after deallocating.
(vector<bool>::_M_fill_insert): Likewise.
(vector<bool>::_M_insert_range): Likewise.
(vector<bool>::_M_insert_aux): Likewise.
From-SVN: r239497
2016-08-16 12:33:16 +01:00
Ville Voutilainen
5c578ae434
Implement LWG 2744 and LWG 2754.
...
* include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
(any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
(any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
Likewise.
(emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/utility: (__is_in_place_type_impl): New.
(__is_in_place_type): Likewise.
* testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
emplace.
* testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
in_place constructor.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
* testsuite/20_util/any/requirements.cc: Add a test for
in_place-constructing a non-default-constructible type.
From-SVN: r239482
2016-08-15 18:06:09 +03:00
Ville Voutilainen
24299f6544
Add a feature macro for C++17 make_from_tuple.
...
* include/std/tuple (__cpp_lib_make_from_tuple): New.
* testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
From-SVN: r239480
2016-08-15 15:46:47 +03:00
Uros Bizjak
0657379e3b
ops.cc: Always include ostream and ext/stdio_filebuf.h.
...
* src/filesystem/ops.cc: Always include ostream and
ext/stdio_filebuf.h.
(do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
[_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
sendfile fails with ENOSYS or EINVAL.
From-SVN: r239479
2016-08-15 13:40:37 +02:00
Thomas Preud'homme
f9657322cf
re PR testsuite/72840 (PASS->NA: 20_util/ratio/cons/cons_overflow_neg.cc)
...
2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR libstdc++/72840
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
syntax.
From-SVN: r239463
2016-08-15 09:14:15 +00:00
Ville Voutilainen
ca1ab6be3b
Implement C++17 make_from_tuple.
...
* include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
* testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
From-SVN: r239372
2016-08-11 17:51:47 +03:00
Ville Voutilainen
68a51b68bd
Implement LWG 2758.
...
* include/bits/basic_string.h
(append(__sv_type, size_type, size_type)): Turn into a template,
change parameter type, constrain, add a conversion to __sv_type
from the dependent parameter type.
(assign(__sv_type, size_type, size_type)): Likewise.
(insert(size_type, __sv_type, size_type, size_type)): Likewise.
(replace(size_type, size_type, __sv_type, size_type, size_type)):
Likewise.
(compare(size_type, size_type,__sv_type, size_type, size_type)):
Likewise.
* testsuite/21_strings/basic_string/lwg2758.cc: New.
From-SVN: r239370
2016-08-11 17:45:23 +03:00
Jonathan Wakely
caee9cdee7
Update C++17 library status table
...
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239209
2016-08-06 13:45:58 +01:00
Jonathan Wakely
ea2f1f4947
* testsuite/lib/libstdc++.exp: Fix typo in comment.
...
From-SVN: r239193
2016-08-06 11:44:17 +01:00
Jonathan Wakely
6ef835c6c0
Use ::new to avoid finding overloaded operator new
...
PR libstdc++/72820
* include/std/functional (_Function_base::_Base_manager::_M_clone):
Qualify new operator.
* testsuite/20_util/function/cons/72820.cc: New test.
From-SVN: r239191
2016-08-06 11:21:07 +01:00
Jonathan Wakely
3e9f67e6a2
Add std::apply for C++17
...
* doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
* doc/html/manual/status.html: Regenerate.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/bits/invoke.h: New header.
(__invoke): Make constexpr. Add && to types in exception specification.
* include/experimental/tuple (apply, __apply_impl): Fix non-reserved
names. Include <bits/invoke.h> and use std::__invoke.
* include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
new header.
(invoke): Add && to types in exception specification.
* include/std/tuple (apply, __apply_impl): Define for C++17.
* testsuite/20_util/tuple/apply/1.cc: New test.
* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
lineno.
From-SVN: r239183
2016-08-06 01:06:02 +01:00
Jonathan Wakely
a0b1bf2181
Correct status of __cpp_lib_enable_shared_from_this
...
* doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239171
2016-08-05 14:57:30 +01:00