Jonathan Wakely
0bd9bdb4db
Define __cpp_lib_generic_associative_lookup feature-test macro
...
* include/bits/stl_function.h: Remove commented-out macro.
* include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
Define feature-test macro.
* testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
From-SVN: r239084
2016-08-03 17:42:31 +01:00
Jonathan Wakely
f8571e5150
Enable Mathematical Special Functions for C++17
...
* include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
true.
* include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
do #error for C++17.
* include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
of __STDCPP_WANT_MATH_SPEC_FUNCS__.
* include/tr1/bessel_function.tcc: Likewise.
* include/tr1/beta_function.tcc: Likewise.
* include/tr1/cmath: Likewise.
* include/tr1/ell_integral.tcc: Likewise.
* include/tr1/exp_integral.tcc: Likewise.
* include/tr1/gamma.tcc: Likewise.
* include/tr1/hypergeometric.tcc: Likewise.
* include/tr1/legendre_function.tcc: Likewise.
* include/tr1/modified_bessel_func.tcc: Likewise.
* include/tr1/poly_hermite.tcc: Likewise.
* include/tr1/poly_laguerre.tcc: Likewise.
* include/tr1/riemann_zeta.tcc: Likewise.
* include/tr1/special_function_util.h: Likewise.
* testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
From-SVN: r239081
2016-08-03 16:54:13 +01:00
Jonathan Wakely
27631a2542
Remove deprecated has_trivial_xxx traits
...
* include/std/type_traits (has_trivial_default_constructor): Remove.
(has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
* testsuite/20_util/has_trivial_copy_assign/requirements/
explicit_instantiation.cc: Remove test.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
line number.
* testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/value.cc:
Likewise.
* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
Check has_trivial_default_constructor, has_trivial_copy_constructor,
and has_trivial_copy_assign are not defined.
* testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
tests.
* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error line number.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
From-SVN: r239079
2016-08-03 16:18:30 +01:00
Jonathan Wakely
589a30d1a4
Fix std::wstring allocator tests
...
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
Likewise.
From-SVN: r238996
2016-08-02 20:34:36 +01:00
Jonathan Wakely
8bcd00bb13
Improve comments on check_v3_target_filesystem_ts
...
* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
comments.
From-SVN: r238995
2016-08-02 20:34:30 +01:00
Jonathan Wakely
a4e1011c49
Move dg-error directives to relevant lines
...
* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
dg-error to relevant line.
* testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
Likewise.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
From-SVN: r238994
2016-08-02 20:34:25 +01:00
Jonathan Wakely
807bd0963e
Skip C tests if test flags include C++ options
...
* testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
options are present that aren't valid for C.
* testsuite/abi/header_cxxabi.c: Likewise.
From-SVN: r238988
2016-08-02 14:32:26 +01:00
Jonathan Wakely
8c65cd3054
Test TR1 special functions without adding them to std
...
* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
check_value.cc: Do not add special functions to namespace std in TR1
test.
From-SVN: r238987
2016-08-02 14:32:21 +01:00
Jonathan Wakely
196c9e7a7d
Only run math special function tests for C++11 and later
...
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
run for C++11 and later.
* testsuite/ext/special_functions/conf_hyperg/check_value.cc:
Likewise.
* testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
* testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
* testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
Likewise.
* testsuite/special_functions/01_assoc_laguerre/check_value.cc:
Likewise.
* testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
* testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
Likewise.
* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
Likewise.
* testsuite/special_functions/02_assoc_legendre/check_value.cc:
Likewise.
* testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
* testsuite/special_functions/02_assoc_legendre/compile_2.cc:
* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
* testsuite/special_functions/03_beta/check_value.cc: Likewise.
* testsuite/special_functions/03_beta/compile.cc: Likewise.
* testsuite/special_functions/03_beta/compile_2.cc: Likewise.
* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
* testsuite/special_functions/04_comp_ellint_1/check_value.cc:
Likewise.
* testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
* testsuite/special_functions/05_comp_ellint_2/check_value.cc:
Likewise.
* testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
* testsuite/special_functions/06_comp_ellint_3/check_value.cc:
Likewise.
* testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
Likewise.
* testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
* testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
Likewise.
* testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
* testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
Likewise.
* testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
* testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
* testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
* testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
* testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
* testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
* testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
* testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
* testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
* testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
* testsuite/special_functions/14_expint/check_value.cc: Likewise.
* testsuite/special_functions/14_expint/compile.cc: Likewise.
* testsuite/special_functions/14_expint/compile_2.cc: Likewise.
* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
* testsuite/special_functions/15_hermite/check_value.cc: Likewise.
* testsuite/special_functions/15_hermite/compile.cc: Likewise.
* testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
* testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
* testsuite/special_functions/16_laguerre/compile.cc: Likewise.
* testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
* testsuite/special_functions/17_legendre/check_value.cc: Likewise.
* testsuite/special_functions/17_legendre/compile.cc: Likewise.
* testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
* testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
* testsuite/special_functions/18_riemann_zeta/check_value.cc:
Likewise.
* testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
* testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
* testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
* testsuite/special_functions/20_sph_legendre/check_value.cc:
Likewise.
* testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
* testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
From-SVN: r238986
2016-08-02 14:32:16 +01:00
Jonathan Wakely
69332dba20
Make TR1 special function tests support C++98
...
* testsuite/tr1/5_numerical_facilities/special_functions/
08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
of [[gnu::unused]].
* testsuite/tr1/5_numerical_facilities/special_functions/
09_cyl_bessel_j/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
10_cyl_bessel_k/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
11_cyl_neumann/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
21_sph_bessel/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
23_sph_neumann/check_value.cc: Likewise.
From-SVN: r238985
2016-08-02 14:32:02 +01:00
Jonathan Wakely
e877144da9
Skip scan-assembler test when -flto is used
...
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
test if -flto used.
From-SVN: r238981
2016-08-02 11:02:25 +01:00
Jonathan Wakely
c1b6948e1b
Support using -flto with libstdc++ testsuite
...
* testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
additional flags for compiling libtestc++.a objects.
From-SVN: r238978
2016-08-02 10:40:50 +01:00
Jonathan Wakely
92d58deefa
Add non-const std::basic_string::data() for C++17
...
* include/bits/basic_string.h (data() const): Update comment.
(data()): Add non-const overload for C++17.
* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
From-SVN: r238963
2016-08-01 21:12:58 +01:00
Jonathan Wakely
9839ff60d0
Remove ignored "xfail" from dg-do compile directives
...
* testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
ignored "xfail" from { dg-do compile { xfail selector } } directive.
* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++11.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++98.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c.cc: Likewise.
From-SVN: r238954
2016-08-01 15:13:06 +01:00
Jonathan Wakely
cbcc9fe8b8
Fix __gnu_cxx::hash_set test to pass in C++98 mode
...
* testsuite/backward/hash_set/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.
From-SVN: r238952
2016-08-01 13:45:47 +01:00
Jonathan Wakely
7481147265
Remove "-x c" from dg-options in libstdc++ C++ test
...
* testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
From-SVN: r238946
2016-08-01 13:18:23 +01:00
Jonathan Wakely
a02a61eeaa
Limit std::tuple tests to run for C++11 and later
...
* testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
later.
* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
Likewise.
From-SVN: r238945
2016-08-01 13:18:18 +01:00
Jonathan Wakely
98b5fb3cbc
Make libstdc++ debug mode test valid for C++98
...
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
C++98-compatible initialization for array.
From-SVN: r238944
2016-08-01 13:18:13 +01:00
Jonathan Wakely
6f3b889189
Remove unused headers and variables from libstdc++ tests
...
* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
unused header and variable from compile-only test.
* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
* testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
* testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
Likewise.
From-SVN: r238943
2016-08-01 13:18:08 +01:00
Jonathan Wakely
2ab794ebf5
Remove duplicate dg-options directive in string_view test
...
* testsuite/experimental/string_view/operations/rfind/char/2.cc:
Remove duplicate dg-options directive.
From-SVN: r238942
2016-08-01 13:17:59 +01:00
Jonathan Wakely
4d16871b22
Use -std=gnu++98 instead of -std=gnu++03 in test
...
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
From-SVN: r238941
2016-08-01 13:17:54 +01:00
Jonathan Wakely
e350983522
Remove linker options from compile-only tests
...
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
linker options from compile-only tests.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.
From-SVN: r238940
2016-08-01 13:17:49 +01:00
Jonathan Wakely
9b46e4d6dd
Run std::ios_base enum tests for C++11 and up
...
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
supported for C++11 and later.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
From-SVN: r238939
2016-08-01 13:17:43 +01:00
Jonathan Wakely
c4da1da21e
Change std::conditional test to compile-only
...
* testsuite/20_util/conditional/requirements/typedefs.cc: Change to
compile-only test.
From-SVN: r238930
2016-07-31 20:37:14 +01:00
Jonathan Wakely
9d5b70b036
Ensure std::atomic test is compiled with optimization
...
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
Ensure test is compiled with optimization.
From-SVN: r238929
2016-07-31 20:30:16 +01:00
Jonathan Wakely
ee62805728
Fix DR 438 std::list test to pass in C++98 mode
...
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Adjust dg-prune-output pattern for error in C++98 mode.
From-SVN: r238928
2016-07-31 20:21:59 +01:00
Jonathan Wakely
d23d1bee8c
Enable std::regex test for C++11 or later
...
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
run for C++11 or later.
From-SVN: r238927
2016-07-31 19:54:31 +01:00
Jonathan Wakely
f2738d6cf2
Fix non-portable std::regex test and test more cases
...
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
test to not rely on GNU extension (escaped normal characters in POSIX
BRE). Enable tests for other strings which are now supported.
From-SVN: r238926
2016-07-31 19:46:30 +01:00
Jonathan Wakely
77f3d97909
Allow std::pair test to run in C++11 mode too
...
* testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
c++11 instead of setting -std=gnu++14.
From-SVN: r238925
2016-07-31 19:12:28 +01:00
Jonathan Wakely
3c040fa4a2
libstdc++/72745 add static assertion for invalid tuple access
...
PR libstdc++/72745
* include/std/array (get): Use positive message for static assertions.
* include/std/functional (_Safe_tuple_element_t): Fix indentation.
* include/std/tuple (tuple_element<I, tuple<>>): Add partial
specialization for invalid indices, with static assertion.
* testsuite/20_util/tuple/element_access/get_neg.cc: New test.
From-SVN: r238924
2016-07-31 18:08:52 +01:00
Jonathan Wakely
f245e3a0ee
Move dg-error directives to relevant lines
...
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
dg-error to relevant line.
* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
Likewise.
* testsuite/26_numerics/random/linear_congruential_engine/
requirements/non_uint_neg.cc: Likewise.
* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
Likewise. Also test for std::atomic_address.
From-SVN: r238923
2016-07-31 17:51:08 +01:00
Ville Voutilainen
8c9142276b
Add missing variable traits, fix testsuite failures.
...
* include/bits/uses_allocator.h (uses_allocator_v): New.
* include/std/functional (is_bind_expression_v, is_placeholder_v):
Likewise.
* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/duration/literals/range.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
New.
From-SVN: r238921
2016-07-31 17:52:53 +03:00
Jonathan Wakely
2f2971492b
Check __STRICT_ANSI__ for 128-bit arithmetic types
...
* testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
not test 128-bit types.
* testsuite/20_util/is_floating_point/value.cc: Likewise.
* testsuite/20_util/is_integral/value.cc: Likewise.
* testsuite/20_util/is_signed/value.cc: Likewise.
* testsuite/20_util/is_unsigned/value.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.
From-SVN: r238918
2016-07-31 14:06:38 +01:00
Jonathan Wakely
7523c5eb1a
Fix file extension of libstdc++ test
...
* testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
From-SVN: r238917
2016-07-31 14:03:46 +01:00
Ville Voutilainen
137422c80c
Implement C++17 variable templates for type traits.
...
* include/std/chrono (treat_as_floating_point_v): New.
* include/std/ratio (ratio_equal_v, ratio_not_equal_v)
(ratio_less_v, ratio_less_equal_v, ratio_greater_v)
(ratio_greater_equal_v): Likewise.
* include/std/system_error (is_error_code_enum_v)
(is_error_condition_enum_v): Likewise.
* include/std/tuple (tuple_size_v): Likewise.
* type_traits (conjunction_v, disjunction_v, negation_v)
(is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
(is_array_v, is_pointer_v, is_lvalue_reference_v)
(is_rvalue_reference_v, is_member_object_pointer_v)
(is_member_function_pointer_v, is_enum_v, is_union_v)
(is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
(is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
(is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
(is_trivially_copyable_v, is_standard_layout_v)
(is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
(is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
(is_constructible_v, is_default_constructible_v)
(is_copy_constructible_v, is_move_constructible_v)
(is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
(is_destructible_v, is_trivially_constructible_v)
(is_trivially_default_constructible_v)
(is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
(is_trivially_assignable_v, is_trivially_copy_assignable_v)
(is_trivially_move_assignable_v, is_trivially_destructible_v)
(is_nothrow_constructible_v, is_nothrow_default_constructible_v)
(is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
(is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
(is_nothrow_move_assignable_v, is_nothrow_destructible_v)
(has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
(is_same_v, is_base_of_v, is_convertible_v): Likewise.
* testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
Likewise.
* testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
* testsuite/20_util/variable_templates_for_traits.cc: Likewise.
From-SVN: r238892
2016-07-29 22:01:39 +03:00
Jonathan Wakely
62589e99d1
New libstdc++ symbol version for new basic_string symbols
...
* acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
* config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
symbols.
* configure: Regenerate.
* testsuite/util/testsuite_abi.cc: Add new symbol version.
From-SVN: r238853
2016-07-29 11:42:17 +01:00
Jonathan Wakely
1a2196e484
Fix DR 438 container tests to pass in C++98 mode
...
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Adjust dg-prune-output pattern for error in C++98 mode.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
From-SVN: r238837
2016-07-28 22:00:45 +01:00
Jonathan Wakely
e539b4ff2f
Fix std::vector test to pass in C++98 mode
...
* testsuite/23_containers/vector/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.
From-SVN: r238836
2016-07-28 22:00:39 +01:00
Jonathan Wakely
c3c2f97308
Use dg-additional-options in libstdc++ tests
...
* testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
dg-options to dg-additional-options so that default options are used.
* testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
Likewise.
* testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
* testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
Likewise.
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
Use dg-additional-options instead of repeating the common options.
From-SVN: r238835
2016-07-28 22:00:34 +01:00
Jonathan Wakely
2de6b25424
Fix invalid dg-do directives in libstdc++ tests
...
* testsuite/22_locale/conversions/string/1.cc: Remove unintended
dg-do compile directive.
* testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
dg-do directive.
* testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
From-SVN: r238834
2016-07-28 22:00:19 +01:00
Ville Voutilainen
ca8f2cb137
Implement std::string_view and P0254r2,
...
Integrating std::string_view and std::string.
* include/Makefile.am: Add string_view and string_view.tcc
to the exported headers.
* include/Makefile.in: Likewise.
* include/bits/basic_string.h: Include <string_view> in C++17 mode.
(__sv_type): New.
(basic_string(__sv_type, const _Alloc&)): Likewise.
(operator=(__sv_type)): Likewise.
(operator __sv_type()): Likewise.
(operator+=(__sv_type)): Likewise.
(append(__sv_type __sv)): Likewise.
(append(__sv_type, size_type, size_type)): Likewise.
(assign(__sv_type)): Likewise.
(assign(__sv_type, size_type, size_type)): Likewise.
(insert(size_type, __sv_type)): Likewise.
(insert(size_type, __sv_type, size_type, size_type)): Likewise.
(replace(size_type, size_type, __sv_type)): Likewise.
(replace(size_type, size_type, __sv_type, size_type, size_type)):
Likewise.
(replace(const_iterator, const_iterator, __sv_type)): Likewise.
(find(__sv_type, size_type)): Likewise.
(rfind(__sv_type, size_type)): Likewise.
(find_first_of(__sv_type, size_type)): Likewise.
(find_last_of(__sv_type, size_type)): Likewise.
(find_first_not_of(__sv_type, size_type)): Likewise.
(find_last_not_of(__sv_type, size_type)): Likewise.
(compare(__sv_type)): Likewise.
(compare(size_type, size_type, __sv_type)): Likewise.
(compare(size_type, size_type, __sv_type, size_type, size_type)):
Likewise.
* include/bits/string_view.tcc: New.
* include/std/string_view: Likewise.
* testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
* testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.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/modifiers/replace/wchar_t/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.
* testsuite/21_strings/basic_string/operations/find/char/5.cc:
Likewise.
* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
Likewise.
* testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
* testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
* testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
* testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
* testsuite/21_strings/basic_string_view/element_access/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/element_access/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
Likewise.
* testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
Likewise.
* testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
Likewise.
* testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
Likewise.
* testsuite/21_strings/basic_string_view/include.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
* testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
Likewise.
* testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/range_access/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
Likewise.
* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
* testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
From-SVN: r238823
2016-07-28 18:15:26 +03:00
Jonathan Wakely
427f68c6c2
* testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
...
From-SVN: r238793
2016-07-27 18:32:45 +01:00
Georeth Chow
a837417c79
Fix missing qualification in <ext/rope>
...
2016-07-25 Georeth Chow <georeth2010@gmail.com>
* include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
_S_concat enumerator.
* testsuite/ext/rope/6.cc: New test.
From-SVN: r238711
2016-07-25 13:56:12 +01:00
Jonathan Wakely
19bb30c065
Use std::mt19937, std::thread and std::atomic to simplify tests
...
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
std::mt19937, std::thread and std::atomic to simplify test.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
From-SVN: r238703
2016-07-25 11:31:53 +01:00
Jonathan Wakely
8cab3d18f0
Move allocator in std::string and RB tree move constructors
...
PR libstdc++/71964
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
* include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
* testsuite/21_strings/basic_string/allocator/71964.cc: New test.
* testsuite/23_containers/set/allocator/71964.cc: New test.
From-SVN: r238647
2016-07-22 16:03:11 +01:00
Jonathan Wakely
960637ac1a
Use correct form of delete in libstdc++.exp
...
* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
delete[] instead of delete.
From-SVN: r238632
2016-07-22 09:33:26 +01:00
Jonathan Wakely
8b649cd3ba
Fix naming, qualification and broken test for propagate_const
...
* include/experimental/propagate_const (propagate_const::__t): Rename
to _M_t and remove comment. Qualify std::move and std::forward.
* testsuite/experimental/propagate_const/cons/default.cc: Fix test.
From-SVN: r238611
2016-07-21 20:39:03 +01:00
Jonathan Wakely
509b778f6c
Define missing delete operators in libstdc++ testsuite
...
* testsuite/23_containers/vector/zero_sized_allocations.cc:
Define sized deallocation function.
* testsuite/util/testsuite_new_operators.h:
(operator delete(void*, const std::nothrow_t&)): Define nothrow
deallocation function.
From-SVN: r238610
2016-07-21 20:38:57 +01:00
Jonathan Wakely
e93a101f83
Fix out-of-bound array accesses in libstdc++ testsuite
...
* testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
reads past the end of strings.
* testsuite/21_strings/basic_string/operations/compare/char/1.cc:
Likewise.
* testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
invalid array accesses.
* testsuite/experimental/string_view/operations/compare/char/1.cc:
Fix read past the end of string.
* testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
From-SVN: r238609
2016-07-21 20:38:51 +01:00
Jonathan Wakely
0a024155c4
Fix missing returns in libstdc++ testsuite
...
* testsuite/24_iterators/container_access.cc: Fix missing returns.
* testsuite/24_iterators/range_access_cpp14.cc: Likewise.
From-SVN: r238608
2016-07-21 20:38:44 +01:00
Jonathan Wakely
22620c1452
Remove memory leaks in libstdc++ testsuite
...
* testsuite/18_support/new_delete_placement.cc: Don't allocate (and
leak) memory for arguments to placement delete.
* testsuite/20_util/addressof/1.cc: Don't leak memory.
* testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
Likewise.
From-SVN: r238607
2016-07-21 20:38:32 +01:00
Jonathan Wakely
e87b7d52c3
LWG 2441 Provide exact-width atomic typedefs
...
* include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
(atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
(atomic_uint64_t): Define (LWG 2441).
* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
lines.
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
the new types.
* doc/xml/manual/intro.xml: Document DR 2441 status.
From-SVN: r238534
2016-07-20 19:21:59 +01:00
Jonathan Wakely
07c772ed4e
LWG 2328 Rvalue stream extraction should use perfect forwarding
...
* include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
to use perfect forwarding (LWG 2328).
* testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
* doc/xml/manual/intro.xml: Document DR 2328 status.
From-SVN: r238533
2016-07-20 19:21:53 +01:00
Jonathan Wakely
4f5f9962c8
Replace references to C++0x with C++11 in comments
...
* include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
* include/bits/move.h: Likewise.
* include/bits/postypes.h: Likewise.
* include/debug/bitset: Likewise.
* include/ext/pb_ds/detail/type_utils.hpp: Likewise.
* include/ext/string_conversions.h: Change C++0x to __cxx11 in
comment.
* testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
* testsuite/util/thread/all.h: Likewise.
From-SVN: r238402
2016-07-15 21:23:08 +01:00
Edward Smith-Rowland
4db1cb44be
Implement C++17 P0025 clamp.
...
2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
Implement C++17 P0025 clamp.
* include/bits/algorithmfwd.h: Declare clamp overloads.
* include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
* testsuite/25_algorithms/clamp/1.cc: New test.
* testsuite/25_algorithms/clamp/2.cc: New test.
* testsuite/25_algorithms/clamp/constexpr.cc: New test.
* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
1.cc: New test.
* testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
pod.cc: New test.
From-SVN: r238383
2016-07-15 17:16:32 +00:00
Ville Voutilainen
1ec0f76305
Fix the constraints for any's assignment operator template to properly
...
reject assignment from a non-copyable lvalue.
From-SVN: r238365
2016-07-15 10:44:22 +03:00
Jonathan Wakely
47d5cb3c3b
Add header for std::search to testcase
...
* testsuite/experimental/functional/searchers.cc: Include <algorithm>
for std::search.
From-SVN: r238341
2016-07-14 16:27:09 +01:00
Ville Voutilainen
25a69162c9
Implement P0032R3, Homogeneous interface for variant, any and optional,
...
for the parts concerning any and optional.
* include/std/any (_Storage()): Make constexpr and have it
initialize _M_ptr.
(any()): Make constexpr.
(any(const any&)): Adjust.
(any(any&&)): Likewise.
(__any_constructible_t): New.
(any(_ValueType&&)): Constrain.
(any(in_place_type_t<_Tp>, _Args&&...)): New.
(any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
Likewise.
(~any()): Adjust.
(operator=(const any&)): Likewise.
(operator=(any&&)): Likewise.
(operator=(_ValueType&&)): Constrain.
(emplace(_Args&&...)): New.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
(clear()): Remove.
(reset()): New.
(swap(any&)): Adjust.
(empty()): Remove.
(has_value()): New.
(type()): Adjust.
(_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
(_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
(make_any(_Args&&...)): Likewise.
(make_any(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/optional (in_place_t, in_place): Remove.
(bad_optional_access): Add a comment referring to LEWG 72.
(emplace(_Args&&...)): Constrain.
(has_value()): New.
(reset()): Likewise.
(make_optional(_Args&&...)): Likewise.
(make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/utility (in_place_tag): New.
(__in_place, __in_place_type, __in_place_index): Likewise.
(in_place_t, in_place_type_t, in_place_index_t): Likewise.
(in_place(__in_place*)): Likewise.
(in_place(__in_place_type<_Tp>*)): Likewise.
(in_place(__in_place_index<_Idx>*)): Likewise.
* testsuite/20_util/any/assign/1.cc: Adjust.
* testsuite/20_util/any/assign/emplace.cc: New.
* testsuite/20_util/any/assign/self.cc: Adjust.
* testsuite/20_util/any/cons/1.cc: Likewise.
* testsuite/20_util/any/cons/in_place.cc: New.
* testsuite/20_util/any/make_any.cc: Likewise.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
* testsuite/20_util/any/misc/swap.cc: Likewise.
* testsuite/20_util/any/modifiers/1.cc: Likewise.
* testsuite/20_util/any/requirements.cc: New.
* testsuite/20_util/in_place/requirements.cc: Likewise.
* testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
* testsuite/20_util/optional/in_place.cc: Likewise.
* testsuite/20_util/optional/make_optional.cc: Add tests for
the new overloads of make_optional.
From-SVN: r238329
2016-07-14 12:10:05 +03:00
Jonathan Wakely
e383deac8b
libstdc++/71856 Define _GLIBCXX_PARALLEL_ASSERTIONS
...
PR libstdc++/71856
* include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
* include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
on _GLIBCXX_ASSERTIONS.
* include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
Include <unistd.h> for sleep.
* include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
* include/parallel/merge.h: Likewise.
* include/parallel/multiway_merge.h: Likewise.
* include/parallel/partition.h: Likewise.
* include/parallel/queue.h: Likewise.
* include/parallel/sort.h: Likewise.
* testsuite/25_algorithms/headers/algorithm/
parallel_algorithm_assert.cc: New.
From-SVN: r238307
2016-07-13 18:22:57 +01:00
Jonathan Wakely
2d60da1031
Revert "Add non-const overload of std::string::data()"
...
This reverts r238291 aka 4300aa2087d90cd2d55852fa38f082a89bc7e72d.
From-SVN: r238303
2016-07-13 16:56:46 +01:00
Ville Voutilainen
86c0ec1de1
Implement P0307R2, Making Optional Greater Equal Again.
...
* include/experimental/optional (_Has_addressof): Fix the comment.
* include/std/optional (_Has_addressof): Likewise.
(operator=(_Up&&)): Constrain.
(operator=(const optional<_Up>&)): Likewise.
(operator=(optional<_Up>&&)): Likewise.
(__optional_relop_t): New.
(operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
(operator!=(const optional<_Tp>&, const optional<_Tp>&)):
Constrain and make transparent.
(operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
(operator>(const optional<_Tp>&, const optional<_Tp>&)):
Constrain and make transparent.
(operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
(operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
(operator==(const optional<_Tp>&, const _Tp&): Constrain.
(operator==(const _Tp&, const optional<_Tp>&)): Likewise.
(operator!=(const optional<_Tp>&, _Tp const&)):
Constrain and make transparent.
(operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
(operator<(const optional<_Tp>&, const _Tp&)): Constrain.
(operator<(const _Tp&, const optional<_Tp>&)): Likewise.
(operator>(const optional<_Tp>&, const _Tp&)):
Constrain and make transparent.
(operator>(const _Tp&, const optional<_Tp>&)): Likewise.
(operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
(operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
(operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
(operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
* testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
* testsuite/20_util/optional/relops/1.cc: Likewise.
* testsuite/20_util/optional/relops/2.cc: Likewise.
* testsuite/20_util/optional/relops/3.cc: Likewise.
* testsuite/20_util/optional/relops/4.cc: Likewise.
* testsuite/20_util/optional/requirements.cc: Add tests to verify
that optional's relops are transparent and don't synthesize
operators. Also test that assignment sfinaes.
From-SVN: r238292
2016-07-13 14:25:51 +03:00
Jonathan Wakely
ceea48fc64
Add non-const overload of std::string::data()
...
Also fix confusion between pointer and _CharT*, so that allocators with
fancy pointers work correctly.
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
New function.
(_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
instead of _M_data().
(basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
Likewise.
(append(const basic_string&)): Likewise.
(append(const basic_string&, size_type, size_type)): Likewise.
(assign(const basic_string&, size_type, size_type)): Likewise.
(insert(size_type, const basic_string&)): Likewise.
(insert(size_type, const basic_string&, size_type, size_type)):
Likewise.
(replace(size_type, size_type, const basic_string&, size_type,
size_type)): Likewise.
(replace(__const_iterator, __const_iterator, const basic_string&)):
Likewise.
(c_str(), data()): Use c_str() instead of _M_data().
(data()): Add non-const overload as per LWG 2391 and P0272R1.
(compare(const basic_string&)): Use data() instead of _M_data().
[!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
Pass raw pointers to _S_copy.
(_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
_S_assign.
(find(const _CharT*, size_type, size_type)): Use data instead of
_M_data().
* testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
From-SVN: r238291
2016-07-13 12:08:37 +01:00
Jonathan Wakely
1b24fb4cd1
Add tests and docs for LWG 2212 support
...
* testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Only include <array>.
* testsuite/23_containers/array/tuple_interface/tuple_size.cc:
Likewise.
* doc/xml/manual/intro.xml; Document LWG 2212 support.
* doc/html*: Regenerate.
From-SVN: r238244
2016-07-12 15:00:26 +01:00
Jonathan Wakely
17b31c054c
Add std::vector::emplace() testcase from LWG 2164
...
* testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
Add testcase from LWG 2164.
From-SVN: r238243
2016-07-12 15:00:11 +01:00
François Dumont
76225d2ca7
stl_vector.h (push_back(const value_type&)): Forward to _M_realloc_insert.
...
2016-07-11 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_vector.h (push_back(const value_type&)): Forward
to _M_realloc_insert.
(insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
(_M_realloc_insert): Declare new function.
(_M_emplace_back_aux): Remove definition.
* include/bits/vector.tcc (emplace_back(_Args...)):
Use _M_realloc_insert.
(insert(const_iterator, const value_type&)): Likewise.
(_M_insert_rval, _M_emplace_aux): Likewise.
(_M_emplace_back_aux): Remove declaration.
(_M_realloc_insert): Define.
* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
Adjust expected results for emplacing an lvalue with reallocation.
From-SVN: r238226
2016-07-11 20:17:56 +00:00
Ville Voutilainen
435e56fb52
Implement std::optional.
...
* include/Makefile.am: Add optional to exported headers.
* include/Makefile.in: Likewise.
* include/std/optional: New.
* testsuite/20_util/optional/typedefs.cc: Likewise.
* testsuite/20_util/optional/relops/2.cc: Likewise.
* testsuite/20_util/optional/relops/3.cc: Likewise.
* testsuite/20_util/optional/relops/4.cc: Likewise.
* testsuite/20_util/optional/relops/5.cc: Likewise.
* testsuite/20_util/optional/relops/1.cc: Likewise.
* testsuite/20_util/optional/relops/6.cc: Likewise.
* testsuite/20_util/optional/nullopt.cc: Likewise.
* testsuite/20_util/optional/in_place.cc: Likewise.
* testsuite/20_util/optional/make_optional.cc: Likewise.
* testsuite/20_util/optional/assignment/2.cc: Likewise.
* testsuite/20_util/optional/assignment/3.cc: Likewise.
* testsuite/20_util/optional/assignment/4.cc: Likewise.
* testsuite/20_util/optional/assignment/5.cc: Likewise.
* testsuite/20_util/optional/assignment/1.cc: Likewise.
* testsuite/20_util/optional/assignment/6.cc: Likewise.
* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
* testsuite/20_util/optional/cons/default.cc: Likewise.
* testsuite/20_util/optional/cons/move.cc: Likewise.
* testsuite/20_util/optional/cons/value.cc: Likewise.
* testsuite/20_util/optional/cons/copy.cc: Likewise.
* testsuite/20_util/optional/requirements.cc: Likewise.
* testsuite/20_util/optional/observers/2.cc: Likewise.
* testsuite/20_util/optional/observers/3.cc: Likewise.
* testsuite/20_util/optional/observers/4.cc: Likewise.
* testsuite/20_util/optional/observers/5.cc: Likewise.
* testsuite/20_util/optional/observers/1.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
* testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
* testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
* testsuite/20_util/optional/swap/1.cc: Likewise.
From-SVN: r238197
2016-07-10 20:44:21 +03:00
Jonathan Wakely
d81102f473
* testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
...
From-SVN: r238169
2016-07-08 17:35:10 +01:00
Ville Voutilainen
52e8622199
Implement std::any.
...
* include/Makefile.am: Add any and c++17_warning.h to exported headers.
* include/Makefile.in: Likewise.
* include/std/any: New.
* testsuite/20_util/any/assign/1.cc: Likewise.
* testsuite/20_util/any/assign/2.cc: Likewise.
* testsuite/20_util/any/assign/self.cc: Likewise.
* testsuite/20_util/any/cons/1.cc: Likewise.
* testsuite/20_util/any/cons/2.cc: Likewise.
* testsuite/20_util/any/cons/aligned.cc: Likewise.
* testsuite/20_util/any/cons/nontrivial.cc: Likewise.
* testsuite/20_util/any/misc/any_cast.cc: Likewise.
* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
* testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
* testsuite/20_util/any/misc/swap.cc: Likewise.
* testsuite/20_util/any/modifiers/1.cc: Likewise.
* testsuite/20_util/any/observers/type.cc: Likewise.
* testsuite/20_util/any/typedefs.cc: Likewise.
From-SVN: r238061
2016-07-07 01:33:20 +03:00
Ville Voutilainen
6ffe854859
Implement LWG 2451, optional<T> should 'forward' T's implicit conversions.
...
Implement LWG 2451, optional<T> should 'forward' T's
implicit conversions.
* include/experimental/optional (__is_optional_impl, __is_optional):
New.
(optional()): Make constexpr and default.
(optional(_Up&&), optional(const optional<_Up>&),
optional(optional<_Up>&& __t): New.
(operator=(_Up&&)): Constrain.
(operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
* testsuite/experimental/optional/cons/value.cc:
Add tests for the functionality added by LWG 2451.
* testsuite/experimental/optional/cons/value_neg.cc: New.
From-SVN: r238049
2016-07-06 16:26:10 +03:00
Ville Voutilainen
7d4f48b5b8
Implement LWG 2509,
...
any_cast doesn't work with rvalue reference targets and cannot
move with a value target.
* include/experimental/any (any(_ValueType&&)): Constrain and
add an overload that doesn't forward.
(any_cast(any&&)): Constrain and add an overload that moves.
* testsuite/experimental/any/misc/any_cast.cc: Add tests for
the functionality added by LWG 2509.
From-SVN: r238022
2016-07-05 21:33:18 +03:00
François Dumont
097e899495
Add tests for inserting aliased objects into std::vector
...
2016-07-04 François Dumont <fdumont@gcc.gnu.org>
* testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
New test.
* testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
test.
From-SVN: r237986
2016-07-04 15:52:54 +01:00
Jonathan Wakely
9958c7eb58
Fix std::vector's use of temporary objects
...
* include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
Define inline. Forward to _M_emplace_aux.
(insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
(_M_insert_rval, _M_emplace_aux): Declare new functions.
(_Temporary_value): New RAII type using allocator to construct/destroy.
(_S_insert_aux_assign): Remove.
(_M_insert_aux): Make non-variadic.
* include/bits/vector.tcc (insert(const_iterator, const value_type&)):
Use _Temporary_value.
(emplace(const_iterator, _Args&&...)): Remove definition.
(_M_insert_rval, _M_emplace_aux): Define.
(_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
(_M_fill_insert): Use _Temporary_value.
* testsuite/23_containers/vector/allocator/construction.cc: New test.
* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
Adjust expected results for emplacing an lvalue with reallocation.
* testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
expected results to account for construction/destruction of temporary
using allocator.
From-SVN: r237985
2016-07-04 15:52:46 +01:00
Ville Voutilainen
e12880f96f
re PR libstdc++/71313 ([Filesystem TS] remove_all fails to remove directory contents recursively)
...
PR libstdc++/71313
* src/filesystem/ops.cc (remove_all(const path&, error_code&)):
Call remove_all for children of a directory.
* testsuite/experimental/filesystem/operations/create_directories.cc:
Adjust.
From-SVN: r237978
2016-07-04 15:52:49 +03:00
François Dumont
6c539f2e67
get_debug_neg.cc: Adjust dg-error line numbers.
...
2016-07-02 François Dumont <fdumont@gcc.gnu.org>
* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/
tuple_element_debug_neg.cc: Likewise.
* testsuite/25_algorithms/lexicographical_compare/debug/
irreflexive_neg.cc: Remove.
From-SVN: r237945
2016-07-02 14:55:20 +00:00
Thomas Preud'homme
72fb6bae83
65913.cc: Require atomic-builtins rather than specific target.
...
2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
libstdc++-v3/
* testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
than specific target.
From-SVN: r237879
2016-06-30 14:17:47 +00:00
François Dumont
29dbb034cb
re PR libstdc++/71181 (Reserving in unordered_map doesn't reserve enough)
...
2016-06-20 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/71181
* include/tr1/hashtable_policy.h
(_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
dereferenceable to avoid check on lower_bound result.
(_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
(_Prime_rehash_policy::_M_need_rehash): Likewise.
* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
Always return a value greater than input value. Set _M_next_resize to
max value when reaching highest prime number.
* src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
being now useless.
* testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
(test02): New.
* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
Fix indentation.
From-SVN: r237617
2016-06-20 20:04:25 +00:00
Jonathan Wakely
3ebacabd0e
libstdc++/71545 fix debug checks in binary search algorithms
...
PR libstdc++/71545
* include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
Remove irreflexive checks.
* include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
binary_search): Likewise.
* testsuite/25_algorithms/equal_range/partitioned.cc: New test.
* testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
* testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
* testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
* testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
Add constructor from array.
From-SVN: r237560
2016-06-17 19:28:34 +01:00
Daniel Kruegler
6b9539e2aa
Provide swappable traits (p0185r1)
...
2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
Provide swappable traits (p0185r1)
* include/std/type_traits (is_swappable, is_nothrow_swappable,
is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
is_nothrow_swappable_v, is_swappable_with_v,
is_nothrow_swappable_with_v): New.
* include/bits/stl_pair.h: Use it as per p0185r1.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* include/std/tuple: Likewise.
* include/std/array: Likewise. Fix zero-size member swap.
* include/bits/hashtable.h: Use __and_.
* testsuite/20_util/is_nothrow_swappable/requirements/
explicit_instantiation.cc: Change test options to std=gnu++17.
* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
* testsuite/20_util/is_swappable/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_swappable/value.cc: Likewise.
* testsuite/20_util/is_nothrow_swappable/requirements/
explicit_instantiation_ext.cc: New.
* testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
New.
* testsuite/20_util/is_nothrow_swappable/value.h: New.
* testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
* testsuite/20_util/is_nothrow_swappable_with/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
New.
* testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
* testsuite/20_util/is_swappable/requirements/
explicit_instantiation_ext.cc: New.
* testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
* testsuite/20_util/is_swappable/value.h: New.
* testsuite/20_util/is_swappable/value_ext.cc: New.
* testsuite/20_util/is_swappable_with/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
* testsuite/20_util/is_swappable_with/value.cc: New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
From-SVN: r237531
2016-06-16 16:07:19 +01:00
Jonathan Wakely
0ae207e947
Optimize inserting value_type into std::vector
...
* include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
new overloaded functions.
* include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
to avoid creating a redundant temporary.
* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
test.
From-SVN: r237526
2016-06-16 13:42:21 +01:00
Ville Voutilainen
dbc6221fe5
Support allocators in tuples of zero size.
...
* include/std/tuple (tuple<>::tuple(),
tuple<>::tuple(allocator_arg_t, const _Alloc&),
tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
* testsuite/20_util/tuple/cons/allocators.cc: Adjust.
From-SVN: r237143
2016-06-06 19:28:59 +03:00
Jonathan Wakely
94229fb6dc
libstdc++/71320 Add or remove file permissions correctly
...
PR libstdc++/71320
* src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
Add or remove permissions according to perms argument.
* testsuite/experimental/filesystem/operations/permissions.cc: New
test.
From-SVN: r237136
2016-06-06 16:50:01 +01:00
Ville Voutilainen
7a66745357
Protect allocator-overloads of tuple-from-tuple constructors from cases that would create dangling references.
...
Protect allocator-overloads of tuple-from-tuple constructors
from cases that would create dangling references.
* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
From-SVN: r237106
2016-06-05 20:39:10 +03:00
Ville Voutilainen
b702100693
re PR libstdc++/66338 (std::forward_as_tuple() issue with single argument)
...
2016-05-24 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/66338
* include/std/tuple (_TMC): Add a check for _NotSameTuple.
* include/std/tuple (tuple(_UElements&&...)): Remove the separate
check for _NotSameTuple.
* include/std/tuple (_TMCT): New.
* include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
* include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
const tuple<_UElements...>&)): Likewise.
* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
tuple<_UElements...>&&)): Likewise.
* testsuite/20_util/tuple/cons/66338.cc: New.
From-SVN: r236822
2016-05-27 17:08:37 +03:00
François Dumont
732eb07625
c++config (_GLIBCXX14_USE_CONSTEXPR): New.
...
2016-05-24 François Dumont <fdumont@gcc.gnu.org>
* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
* include/bits/hashtable_policy.h
(_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
having load factor management.
(_Mask_range_hashing): New.
(__clp2): New.
(_Power2_rehash_policy): New.
(_Inserts<>): Remove last template parameter, _Unique_keys, so that
partial specializations only depend on whether iterators are constant
or not.
* testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
test new hash policy.
* testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
Likewise.
* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
Likewise.
* testsuite/23_containers/unordered_set/insert/hash_policy.cc:
Likewise.
* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
Likewise.
* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
New.
* testsuite/performance/23_containers/insert/54075.cc: Add benchmark
using the new hash policy.
* testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
From-SVN: r236669
2016-05-24 20:55:57 +00:00
Thomas Preud'homme
11f8114b51
re PR libstdc++/71081 (experimental/memory_resource/1.cc run for targets without atomics)
...
2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR libstdc++/71081
* testsuite/experimental/memory_resource/1.cc: Add required argument
to dg-require-atomic-builtins.
From-SVN: r236507
2016-05-20 12:36:57 +00:00
Jonathan Wakely
068b220e52
Add dg-require-atomic-builtins to test
...
PR libstdc++/71081
* testsuite/experimental/memory_resource/1.cc: Require atomics.
From-SVN: r236177
2016-05-12 15:08:45 +01:00
Jonathan Wakely
7f99d40a99
Test begin and end functions for directory iterators
...
* include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Test begin and end functions.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Likewise.
From-SVN: r236085
2016-05-10 16:39:20 +01:00
Jonathan Wakely
6fe673ad0f
libstdc++/71038 fix error checks in filesystem::copy_file
...
PR libstdc++/71038
* src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
* testsuite/experimental/filesystem/operations/copy_file.cc: New test.
From-SVN: r236084
2016-05-10 16:39:14 +01:00
Jonathan Wakely
f9a39467b6
libstdc++/71036 Handle EEXIST in filesystem::create_directory
...
PR libstdc++/71036
* src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
* testsuite/experimental/filesystem/operations/create_directory.cc:
New test.
From-SVN: r236076
2016-05-10 14:04:21 +01:00
Jonathan Wakely
6f0800d418
libstdc++/71037 Add base path to filesystem::canonical exceptions
...
PR libstdc++/71037
* src/filesystem/ops.cc (canonical(const path&, const path&)): Add
base path to exception.
* testsuite/experimental/filesystem/operations/canonical.cc: Test
paths contained in exception.
From-SVN: r236074
2016-05-10 13:22:32 +01:00
Jonathan Wakely
f10b2e1cae
2.cc: Remove unused using declaration.
...
* testsuite/experimental/type_erased_allocator/2.cc: Remove unused
using declaration.
From-SVN: r236073
2016-05-10 13:04:22 +01:00
Jonathan Wakely
d7187f9ea1
libstdc++/71005 fix post-increment for filesystem iterators
...
PR libstdc++/71005
* include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
New type.
(directory_iterator::operator++(int)): Return proxy.
(recursive_directory_iterator::operator++(int)): Likewise.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Test post-increment.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Likewise.
From-SVN: r236072
2016-05-10 12:25:06 +01:00
Jonathan Wakely
7972e24663
libstdc++/71004 fix recent additions to testcase
...
PR libstdc++/71004
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Fix test02 to not call member
functions on invalid iterator, and use VERIFY not assert.
From-SVN: r236028
2016-05-09 12:50:01 +01:00
Ville Voutilainen
fb334765e2
Avoid endless run-time recursion for copying single-element tuples where the...
...
Avoid endless run-time recursion for copying single-element
tuples where the element type is by-value constructible
from any type.
* include/std/tuple (_NotSameTuple): New.
* include/std/tuple (tuple(_UElements&&...): Use it.
* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
From-SVN: r236025
2016-05-09 14:03:36 +03:00
Jonathan Wakely
e4cce0cea0
libstdc++/71004 fix recursive_directory_iterator default constructor
...
PR libstdc++/71004
* include/experimental/bits/fs_dir.h (recursive_directory_iterator):
Initialize scalar member variables in default constructor.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Teste default construction.
From-SVN: r236023
2016-05-09 11:09:37 +01:00
Rainer Orth
40436d8169
Enable dg-reqire-sharedlib on Solaris
...
* testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
From-SVN: r235931
2016-05-05 19:54:42 +00:00
Jonathan Wakely
f5c40ce2cf
Add dg-require-filesystem-ts directive to test
...
* testsuite/experimental/filesystem/path/native/string.cc: Add
dg-require-filesystem-ts directive.
From-SVN: r235919
2016-05-05 11:03:56 +01:00
Jonathan Wakely
d9cb3e7598
libstdc++/70940 Start fixing polymorphic memory resources
...
PR libstdc++/70940
* include/experimental/memory_resource
(__resource_adaptor_imp::do_allocate): Do not default-construct
rebound allocator.
(__resource_adaptor_imp::do_deallocate): Likewise. Use
allocator_traits to get pointer type.
(__null_memory_resource::do_allocate): Remove unused parameters.
(__null_memory_resource::do_deallocate): Likewise.
(__null_memory_resource::do_is_equal): Likewise. Add return statement.
* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
move to ...
* testsuite/experimental/memory_resource/1.cc: Here.
* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
* testsuite/experimental/memory_resource/resource_adaptor.cc: New.
From-SVN: r235868
2016-05-04 13:08:45 +01:00
Chris Gregory
f92ab29ffa
Remove trailing whitespace from libstdc++-v3 files
...
2016-04-29 Chris Gregory <czipperz@gmail.com>
* config/*: Remove trailing whitespace.
* src/*: Likewise.
* testsuite/tr1/*: Likewise.
* testsuite/util/*: Likewise.
From-SVN: r235645
2016-04-29 17:11:43 +01:00
Jonathan Wakely
9f9eb84eac
libstdc++/70766 use std::addressof instead of operator&
...
PR libstdc++/70766
* include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
__addressof.
* include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
Likewise.
* include/std/atomic (atomic<_Tp>): Likewise.
* include/std/shared_mutex (shared_lock): Likewise.
* testsuite/24_iterators/istream_iterator/70766.cc: New test.
* testsuite/24_iterators/ostream_iterator/70766.cc : New test.
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
* testsuite/29_atomics/atomic/70766.cc: New test.
* testsuite/30_threads/shared_lock/70766.cc: New test.
From-SVN: r235565
2016-04-28 13:33:07 +01:00
Jonathan Wakely
a635cdb2cc
libstdc++/70762 fix fallback implementation of nonexistent_path
...
PR libstdc++/70762
* testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
static counter to return a different path on every call.
From-SVN: r235395
2016-04-24 19:06:54 +01:00
Tim Shen
216f7526fe
re PR libstdc++/70745 (Wrong handling of regex_constant::match_not_eow and regex_constant::match_not_bow)
...
PR libstdc++/70745
* include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
Fix the match_not_bow and match_not_eow behavior.
* testsuite/28_regex/regression.cc: Add testcase.
From-SVN: r235382
2016-04-23 03:58:37 +00:00
Jonathan Wakely
29ca91f72e
libstdc++/69703 ignore endianness in codecvt_utf8
...
PR libstdc++/69703
* src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in)):
Override endianness bit in mode.
* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
* testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
that little_endian mode is ignored.
* testsuite/experimental/filesystem/path/native/string.cc: New test.
From-SVN: r235216
2016-04-19 19:02:46 +01:00
Jonathan Wakely
1490525104
libstdc++/70609 fix filesystem::copy()
...
PR libstdc++/70609
* src/filesystem/ops.cc (close_fd): New function.
(do_copy_file): Set permissions before copying file contents. Check
result of closing file descriptors. Don't copy streambuf when file
is empty.
(copy(const path&, const path&, copy_options, error_code&)): Use
lstat for source file when copy_symlinks is set.
* testsuite/experimental/filesystem/operations/copy.cc: Test copy().
From-SVN: r235215
2016-04-19 19:02:39 +01:00
Jonathan Wakely
0cded43df4
PR libstdc++/41759 reword static assertions in <random>
...
PR libstdc++/41759
* include/bits/random.h: Reword static assertion messages to state
positive conditions.
* include/bits/random.tcc: Likewise.
* include/bits/uniform_int_dist.h: Likewise.
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
patterns.
From-SVN: r235160
2016-04-18 19:03:50 +01:00
Jonathan Wakely
b05cf382e0
Define std: 🧵 :id comparison operators at namespace-scope
...
From-SVN: r235155
2016-04-18 17:16:14 +01:00
Jonathan Wakely
4ed6e52446
Make use of extensions more explicit in libstdc++ tests
...
* testsuite/18_support/bad_exception/23591_thread-1.c: Add
-Wno-pedantic to dg-options.
* testsuite/20_util/align/2.cc: Use type as operand of alignof.
* testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
to dg-options.
* testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
Remove extra semi-colon.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Always supply second argument to static_assert.
* testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
semi-colon.
* testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
dg-options.
* testsuite/26_numerics/complex/literals/values.cc: Likewise.
* testsuite/29_atomics/atomic/60695.cc: Likewise.
* testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
alignof when operand is an object not a type.
* testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
* testsuite/decimal/make-decimal.cc: Likewise.
* testsuite/experimental/type_traits/value.cc: Always supply second
argument to static_assert.
* testsuite/util/testsuite_common_types.h: Use __extension__ for
__int128 types.
From-SVN: r235154
2016-04-18 16:44:25 +01:00
Jonathan Wakely
abb6e0a19d
Don't include internal header in libstdc++ tests
...
* testsuite/experimental/type_erased_allocator/1.cc: Don't include
internal header.
* testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
* testsuite/experimental/type_erased_allocator/2.cc: Likewise.
* testsuite/experimental/type_erased_allocator/uses_allocator.cc:
Likewise. Add licence and change to compile-only test.
From-SVN: r235153
2016-04-18 16:44:16 +01:00
Jason Merrill
9f285ccb77
Revert empty class parameter passing ABI changes.
...
From-SVN: r234977
2016-04-14 12:23:06 -04:00
Martin Sebor
342fac9537
PR c++/69517 - [5/6 regression] SEGV on a VLA with excess initializer elements
...
PR c++/69517 - [5/6 regression] SEGV on a VLA with excess initializer elements
PR c++/70019 - VLA size overflow not detected
PR c++/70588 - SIGBUS on a VLA larger than SIZE_MAX / 2
gcc/testsuite/ChangeLog:
2016-04-13 Martin Sebor <msebor@redhat.com>
PR c++/69517
PR c++/70019
PR c++/70588
* c-c++-common/ubsan/vla-1.c (main): Catch exceptions.
* g++.dg/cpp1y/vla11.C: New test.
* g++.dg/cpp1y/vla12.C: New test.
* g++.dg/cpp1y/vla13.C: New test.
* g++.dg/cpp1y/vla14.C: New test.
* g++.dg/cpp1y/vla3.C: Restore deleted test.
* gcc/testsuite/g++.dg/init/array24.C: Fully brace VLA initializer.
* g++.dg/ubsan/vla-1.C: Disable exceptions.
gcc/cp/ChangeLog:
2016-04-13 Martin Sebor <msebor@redhat.com>
PR c++/69517
PR c++/70019
PR c++/70588
* cp-tree.h (throw_bad_array_length, build_vla_check): Declare new
functions.
* decl.c (check_initializer, cp_finish_decl): Call them.
(reshape_init_r): Reject incompletely braced intializer-lists
for VLAs.
* init.c (throw_bad_array_length, build_vla_check)
(build_vla_size_check, build_vla_init_check): Define new functions.
* typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p()
to detect a VLA.
(store_init_value): Same.
gcc/doc/ChangeLog:
2016-04-13 Martin Sebor <msebor@redhat.com>
PR c++/69517
PR c++/70019
PR c++/70588
* extend.texi (Variable Length): Document C++ specifics.
libstdc++-v3/ChangeLog:
2016-04-13 Martin Sebor <msebor@redhat.com>
PR c++/69517
* testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
upper bound is positive.
From-SVN: r234966
2016-04-13 17:26:41 -06:00
Jonathan Wakely
a6297ab587
Adjust for new empty class parameter passing ABI.
...
* include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
_GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
* include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
of functions taking empty structs by value. Add a template parameter
to overloads without hints. Rename overloads with hints to
_M_emplace_hint.
(_Hashtable::_M_erase(true_type, const_iterator),
_Hashtable::_M_erase(false_type, const_iterator)): Change signatures
by reordering parameters.
* include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
_M_emplace_hint instead of _M_emplace.
* include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
* include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
__shared_ptr): Likewise.
* include/bits/stl_algo.h (replace_if): Likewise.
* include/bits/stl_pair.h (piecewise_construct_t,
piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
* include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
__uses_alloc0): Likewise.
* include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
* testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
From-SVN: r234964
2016-04-13 23:00:50 +01:00
Jonathan Wakely
6da8b93163
* testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
...
From-SVN: r234808
2016-04-07 15:26:24 +01:00
Jonathan Wakely
d5ec69f374
* testsuite/30_threads/thread/70503.cc: Require -static to work.
...
From-SVN: r234757
2016-04-05 18:21:48 +01:00
Jonathan Wakely
87cec93ee0
Ensure std::thread helpers have internal linkage
...
PR libstdc++/70503
* src/c++11/thread.cc (execute_native_thread_routine,
execute_native_thread_routine_compat): Give internal linkage.
* testsuite/30_threads/thread/70503.cc: New test.
From-SVN: r234746
2016-04-05 14:35:32 +01:00
Ville Voutilainen
7b3318c41e
re PR libstdc++/70437 (Instantiation loop with pair and is_constructible)
...
PR libstdc++/70437
* include/bits/stl_pair.h (_ConstructiblePair,
_ImplicitlyConvertiblePair, _MoveConstructiblePair,
_ImplicitlyMoveConvertiblePair): Add shortcut conditions
for same-type cases.
* testsuite/20_util/pair/70437.cc: New.
From-SVN: r234743
2016-04-05 14:31:30 +03:00
Jonathan Wakely
00e6c25ac8
libstdc++/69945 Add __gnu_cxx::__freeres hook
...
PR libstdc++/69945
* config/abi/pre/gnu.ver: Add new symbol.
* libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
* testsuite/18_support/free_eh_pool.cc: New test.
From-SVN: r234465
2016-03-24 18:13:40 +00:00
Jonathan Wakely
9aee022eb9
libstdc++/69893 make <tr1/cmath> work with C++11
...
PR libstdc++/69893
* include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
trunc) [__cplusplus >= 201103L]: Import from namespace std.
(fabs) [__cplusplus < 201103L]: Import from namespace std.
* include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
Likewise.
* testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
namespace before including TR1 headers.
* testsuite/tr1/headers/c++200x/math.cc: New test.
From-SVN: r233644
2016-02-23 19:49:31 +00:00
Tim Shen
244901a572
re PR libstdc++/69794 (std::regex_search match failure with regex object with flags grep|icase)
...
2016-02-16 Tim Shen <timshen@google.com>
PR libstdc++/69794
* include/bits/regex_scanner.h: Add different special character
sets for grep and egrep regex.
* include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
* testsuite/28_regex/regression.cc: Add new testcase.
From-SVN: r233482
2016-02-17 03:33:02 +00:00
Mike Stump
82f0f78917
Fix FAIL: special_functions/18_riemann_zeta/check_value.cc (test for excess errors)
...
From-SVN: r233391
2016-02-12 21:23:11 +00:00
Mike Stump
af583c4457
Ensure stdout is newline terminated for status wrappers.
...
From-SVN: r233254
2016-02-09 20:18:10 +00:00
Jonathan Wakely
3555173fb9
Test for C99 stdlib.h functions with -std=c++98
...
PR libstdc++/69626
* acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
* config.h.in: Regenerate.
* configure: Regenerate.
* testsuite/21_strings/c_strings/char/69626.cc: New.
From-SVN: r233161
2016-02-04 23:47:21 +00:00
Jakub Jelinek
8dc781e454
* testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
...
From-SVN: r232898
2016-01-27 20:31:06 +01:00
Jonathan Wakely
bae87f7fdd
Set FP options for failing special functions tests
...
PR libstdc++/69295
* testsuite/ext/special_functions/hyperg/check_value.cc: Use
-ffp-contract=off, and -ffloat-store to disable excess precision.
* testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
-ffp-contract=off.
From-SVN: r232879
2016-01-27 15:09:38 +00:00
Jonathan Wakely
f1d591e8a6
Fix assertions for move assignment of trivial types
...
PR libstdc++/69478
* include/bits/stl_algobase.h (__copy_move<_IsMove, true,
random_access_iterator_tag>): Check is_move_assignable when moving.
(__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
Likewise.
* testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
* testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
* testsuite/25_algorithms/move/69478.cc: New.
* testsuite/25_algorithms/move_backward/69478.cc: new.
From-SVN: r232842
2016-01-26 19:38:20 +00:00
Jonathan Wakely
2944621e2c
Avoid including all of <random> in <algorithm>
...
PR libstdc++/69464
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/bits/random.h (uniform_int_distribution): Move to
bits/uniform_int_dist.h.
* include/bits/random.tcc (uniform_int_distribution::operator(),
uniform_int_distribution::__generate_impl): Likewise.
* include/bits/uniform_int_dist.h: New header.
* include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
<bits/uniform_int_dist.h> instead of <random>.
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
move_iterators/1.cc: Include correct header for uninitialized_copy.
* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
move_iterators/1.cc: Likewise.
* testsuite/25_algorithms/nth_element/58800.cc: Include correct
header for vector.
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
From-SVN: r232798
2016-01-25 16:44:30 +00:00
Edward Smith-Rowland
02dc241929
TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
...
2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
* include/c_compatibility/math.h: Import the TR29124 functions
into the global namespace.
* testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
xfail and make compile-only.
* testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
* testsuite/special_functions/03_beta/compile_2.cc: Ditto.
* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
* testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
* testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
* testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
* testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
* testsuite/special_functions/14_expint/compile_2.cc: Ditto.
* testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
* testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
* testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
* testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
* testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
* testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
* testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
From-SVN: r232755
2016-01-22 23:17:10 +00:00
Jonathan Wakely
d1fb377c68
Constrain std::valarray functions and operators
...
PR libstdc++/69116
* include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
define result_type for types which can be safely used with valarrays.
* testsuite/26_numerics/valarray/69116.cc: New.
From-SVN: r232748
2016-01-22 21:15:41 +00:00
Jonathan Wakely
ab56cbed60
libstdc++/69406 Fix test to check for supported headers
...
PR libstdc++/69406
* include/bits/cpp_type_traits.h: Ensure C++ language linkage.
* include/ext/type_traits.h: Likewise.
* testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
for presence of C headers.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
dg-error line number.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
From-SVN: r232672
2016-01-21 13:33:27 +00:00
Jonathan Wakely
3f93466af4
Add C++11 <cmath> overloads to the global namespace
...
PR libstdc++/60401
* include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
Add using declarations.
* testsuite/26_numerics/headers/cmath/60401.cc: New.
From-SVN: r232627
2016-01-20 17:44:58 +00:00
Jonathan Wakely
eac437bf2c
Ensure C++ language linkage in cmath and cstdlib
...
PR libstdc++/69386
* include/c_global/ccomplex: Ensure C++ language linkage.
* include/c_global/cmath: Likewise.
* include/c_global/cstdlib: Likewise.
* include/c_global/ctgmath: Likewise.
* testsuite/17_intro/headers/c++2011/linkage.cc: New.
From-SVN: r232607
2016-01-20 12:34:25 +00:00
Jonathan Wakely
96e19adabc
Add C++-conforming wrappers for stdlib.h and math.h
...
PR libstdc++/14608
PR libstdc++/60401
* include/Makefile.am: Use c_compatibility math.h and stdlib.h for
--enable-cheaders=c_global configs.
* include/Makefile.in: Regenerate.
* include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
test and allow inclusion from C files.
* include/c_compatibility/stdlib.h: Likewise. Support freestanding.
(at_quick_exit, quick_exit): Add using directives.
* include/c_global/cmath: Use #include_next for math.h.
* include/c_global/cstdlib: Use #include_next for stdlib.h.
* testsuite/26_numerics/headers/cmath/14608.cc: New.
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Remove xfail for most targets.
* testsuite/26_numerics/headers/cstdlib/60401.cc: New.
From-SVN: r232586
2016-01-19 21:43:55 +00:00
Jonathan Wakely
c91bcffc4a
Add test for PR 60637
...
PR libstdc++/60637
* testsuite/26_numerics/headers/cmath/60637.cc: Add test.
From-SVN: r232534
2016-01-18 17:15:42 +00:00
Jonathan Wakely
9c5ad80efd
Fix construction of std::function from null pointer-to-member
...
PR libstdc++/69293
* include/std/functional (_Function_base::_M_not_empty_function):
Change overloads for pointers to take arguments by value.
* testsuite/20_util/function/cons/57465.cc: Add tests for
pointer-to-member cases.
From-SVN: r232504
2016-01-18 11:43:37 +00:00
H.J. Lu
7573116b0a
Revert the accidental checkin
...
From-SVN: r232476
2016-01-16 15:07:34 -08:00
H.J. Lu
5445d5bff0
Add __int128 symbols to x32 aseline_symbols.txt
...
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
__int128 symbols.
From-SVN: r232474
2016-01-16 14:52:21 -08:00
Jonathan Wakely
d7c1581c04
Use static assertion for uses-allocator construction
...
PR libstdc++/69293
* include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
static assertion that type is constructible from the arguments.
* testsuite/20_util/scoped_allocator/69293_neg.cc: New.
* testsuite/20_util/uses_allocator/69293_neg.cc: New.
* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
From-SVN: r232457
2016-01-15 23:12:13 +00:00
Torvald Riegel
a04d5fc95d
libstdc++: Make certain exceptions transaction_safe.
...
From-SVN: r232454
2016-01-15 22:42:41 +00:00
Edward Smith-Rowland
2be75957b8
Implement TR29124 C++ special Math Functions.
...
2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
Jonathan Wakely <jwakely@redhat.com>
Florian Goth <CaptainSifff@gmx.de>
Implement TR29124 C++ special Math Functions.
* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* include/bits/specfun.h: New.
* include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
* include/tr1/bessel_function.tcc: Ditto.
* include/tr1/beta_function.tcc: Ditto.
* include/tr1/cmath: Ditto.
* include/tr1/ell_integral.tcc: Ditto.
* include/tr1/exp_integral.tcc: Ditto.
* include/tr1/gamma.tcc: Ditto.
* include/tr1/hypergeometric.tcc: Ditto.
* include/tr1/legendre_function.tcc: Ditto.
* include/tr1/modified_bessel_func.tcc: Ditto.
* include/tr1/poly_hermite.tcc: Ditto.
* include/tr1/poly_laguerre.tcc: Ditto.
* include/tr1/riemann_zeta.tcc: Ditto.
* include/tr1/special_function_util.h: Ditto.
* testsuite/ext/special_functions/conf_hyperg: New.
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
* testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
* testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
* testsuite/ext/special_functions/hyperg: New.
* testsuite/ext/special_functions/hyperg/check_nan.cc: New.
* testsuite/ext/special_functions/hyperg/check_value.cc: New.
* testsuite/ext/special_functions/hyperg/compile.cc: New.
* testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
* testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
* testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
* testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
* testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
* testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
* testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
* testsuite/special_functions/02_assoc_legendre/compile.cc: New.
* testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
* testsuite/special_functions/03_beta/check_nan.cc: New.
* testsuite/special_functions/03_beta/check_value.cc: New.
* testsuite/special_functions/03_beta/compile.cc: New.
* testsuite/special_functions/03_beta/compile_2.cc: New.
* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
* testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
* testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
* testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
* testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
* testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
* testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
* testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
* testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
* testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
* testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
* testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
* testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
* testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
* testsuite/special_functions/10_cyl_neumann/compile.cc: New.
* testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
* testsuite/special_functions/11_ellint_1/check_nan.cc: New.
* testsuite/special_functions/11_ellint_1/check_value.cc: New.
* testsuite/special_functions/11_ellint_1/compile.cc: New.
* testsuite/special_functions/11_ellint_1/compile_2.cc: New.
* testsuite/special_functions/12_ellint_2/check_nan.cc: New.
* testsuite/special_functions/12_ellint_2/check_value.cc: New.
* testsuite/special_functions/12_ellint_2/compile.cc: New.
* testsuite/special_functions/12_ellint_2/compile_2.cc: New.
* testsuite/special_functions/13_ellint_3/check_nan.cc: New.
* testsuite/special_functions/13_ellint_3/check_value.cc: New.
* testsuite/special_functions/13_ellint_3/compile.cc: New.
* testsuite/special_functions/13_ellint_3/compile_2.cc: New.
* testsuite/special_functions/14_expint/check_nan.cc: New.
* testsuite/special_functions/14_expint/check_value.cc: New.
* testsuite/special_functions/14_expint/compile.cc: New.
* testsuite/special_functions/14_expint/compile_2.cc: New.
* testsuite/special_functions/15_hermite/check_nan.cc: New.
* testsuite/special_functions/15_hermite/check_value.cc: New.
* testsuite/special_functions/15_hermite/compile.cc: New.
* testsuite/special_functions/15_hermite/compile_2.cc: New.
* testsuite/special_functions/16_laguerre/check_nan.cc: New.
* testsuite/special_functions/16_laguerre/check_value.cc: New.
* testsuite/special_functions/16_laguerre/compile.cc: New.
* testsuite/special_functions/16_laguerre/compile_2.cc: New.
* testsuite/special_functions/17_legendre/check_nan.cc: New.
* testsuite/special_functions/17_legendre/check_value.cc: New.
* testsuite/special_functions/17_legendre/compile.cc: New.
* testsuite/special_functions/17_legendre/compile_2.cc: New.
* testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
* testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
* testsuite/special_functions/18_riemann_zeta/compile.cc: New.
* testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
* testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
* testsuite/special_functions/19_sph_bessel/check_value.cc: New.
* testsuite/special_functions/19_sph_bessel/compile.cc: New.
* testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
* testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
* testsuite/special_functions/20_sph_legendre/check_value.cc: New.
* testsuite/special_functions/20_sph_legendre/compile.cc: New.
* testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
* testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
* testsuite/special_functions/21_sph_neumann/check_value.cc: New.
* testsuite/special_functions/21_sph_neumann/compile.cc: New.
* testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
* testsuite/util/specfun_testcase.h: New.
* testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
* testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
* testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
* testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
* testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
* testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
Co-Authored-By: Florian Goth <CaptainSifff@gmx.de>
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r232377
2016-01-14 18:12:43 +00:00
Jonathan Wakely
39a1d8c894
Use ::isinf and ::isnan if libc defines them
...
PR libstdc++/48891
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
and isnan functions.
* config.h.in: Regenerate.
* configure: Regenerate.
* include/c_global/cmath (isinf(double), isnan(double))
[_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
* testsuite/26_numerics/headers/cmath/48891.cc: New.
From-SVN: r232327
2016-01-13 16:25:56 +00:00
Daniel Kruegler
26b5ace7ea
libstdc++/68877 Reimplement std::__is_swappable
...
2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
PR libstdc++/68877
* include/std/type_traits: Following N4511, reimplement __is_swappable
and __is_nothrow_swappable. Move __is_swappable to namespace std,
adjust callers. Use __is_nothrow_swappable in swap.
* include/bits/move.h: Use __is_nothrow_swappable in swap.
* testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
__is_swappable related tests.
* testsuite/20_util/is_swappable/value.cc: New.
* testsuite/20_util/is_swappable/requirements/
explicit_instantiation.cc: New.
* testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
* testsuite/25_algorithms/swap/68877.cc: New.
From-SVN: r232296
2016-01-12 21:19:58 +00:00
Jonathan Wakely
bd285a8bdb
Extend std::function test for PR 68995
...
* testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
From-SVN: r232294
2016-01-12 19:39:47 +00:00
Jonathan Wakely
1c3c7c4145
Prevent recursive instantiation in std::function
...
PR libstdc++/69005
PR libstdc++/69222
* include/std/functional (function::_Invoke): Remove, use result_of.
(function::_Callable): Replace alias template with class template
and use partial specialization instead of _NotSelf alias template.
(function(_Functor)): Add "not self" constraint so that _Callable is
not used while type is incomplete.
* testsuite/20_util/function/69222.cc: New.
From-SVN: r232273
2016-01-12 14:54:33 +00:00
Jonathan Wakely
1517bc3008
allocator_traits<allocator<T>> partial specialization
...
PR libstdc++/60976
* include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
Define partial specialization.
* testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
destroy members to std::allocator explicit specialization.
From-SVN: r232232
2016-01-11 16:47:58 +00:00
Jonathan Wakely
8babc12b22
Use -std option in test for C99 macros in <cmath>
...
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++.cc: Rename to ...
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++0x.cc: Rename to ...
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++11.cc: Here.
From-SVN: r232165
2016-01-08 14:59:36 +00:00
Jonathan Wakely
f885fa898f
Use std::addressof in insert iterators, allocators and promises
...
PR libstdc++/69105
PR libstdc++/69106
PR libstdc++/69114
* include/bits/stl_iterator.h (back_insert_iterator,
front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
* include/bits/uses_allocator.h (__use_alloc): Use __addressof.
* include/std/future (__future::base::_State_baseV2::__setter):
Likewise.
* include/std/scoped_allocator (__outermost): Likewise.
* testsuite/20_util/scoped_allocator/69114.cc: New.
* testsuite/20_util/uses_allocator/69114.cc: New.
* testsuite/30_threads/promise/69106.cc: New.
From-SVN: r232129
2016-01-07 15:01:33 +00:00
Jonathan Wakely
373a75fb2a
Remove noexcept from function template that can throw
...
PR libstdc++/69092
* include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
Remove _GLIBCXX_NOEXCEPT.
testsuite/21_strings/basic_string/cons/char/69092.cc: New.
From-SVN: r232112
2016-01-06 20:34:41 +00:00
Jakub Jelinek
818ab71a41
Update copyright years.
...
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jason Merrill
b4a0c79b1a
Correct use of __GXX_WEAK__ macro.
...
* testsuite/ext/bitmap_allocator/check_deallocate_null.cc
* testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
From-SVN: r231953
2015-12-24 22:25:09 -05:00
Jonathan Wakely
989d4a8609
Rename test file that had incorrect bug number
...
PR libstdc++/68982
testsuite/20_util/function_objects/mem_fn/68276.cc: Rename to ...
testsuite/20_util/function_objects/mem_fn/68982.cc: Correct bug number.
From-SVN: r231881
2015-12-21 14:16:36 +00:00
Jonathan Wakely
a716d11ad4
libstdc++/68995 qualify calls to __callable_functor
...
PR libstdc++/68995
* include/std/functional (_function_handler, function): Qualify
__callable_functor.
* testsuite/20_util/function/68995.cc: New.
From-SVN: r231880
2015-12-21 13:02:18 +00:00
Jonathan Wakely
e9e6a99538
libstdc++/68276 consistently qualify std::forward
...
PR libstdc++/68276
* include/std/functional (__invoke_impl, _Mem_fn::operator()): Qualify
std::forward.
testsuite/20_util/function_objects/mem_fn/68276.cc: New.
From-SVN: r231879
2015-12-21 13:02:12 +00:00
Ville Voutilainen
de0830e12b
re PR libstdc++/66693 ([C++17] std::tuple_size fails with const std::array)
...
PR libstdc++/66693.
* include/std/tuple (tuple_element, tuple_size, tuple_element_t,
__tuple_element_t): Move to...
* include/std/utility: ...here.
* testsuite/20_util/pair/astuple/astuple.cc: Adjust.
* testsuite/20_util/pair/astuple/astuple_cpp14.cc: New.
* testsuite/20_util/tuple/tuple_element.cc: Adjust.
* testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
* testsuite/20_util/tuple/tuple_size.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc:
New.
* testsuite/23_containers/array/tuple_interface/tuple_size.cc: Adjust.
From-SVN: r231875
2015-12-21 13:22:16 +02:00
Ville Voutilainen
03d5d0c353
re PR libstdc++/68276 (ios_base::_M_grow_words should use new (std::nothrow))
...
2015-12-18 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/68276
* src/c++11/ios.cc (_M_grow_words): Use nothrow new.
* testsuite/27_io/ios_base/storage/11584.cc: Adjust.
From-SVN: r231819
2015-12-18 17:17:09 +02:00
Jonathan Wakely
6666731254
Fix cv-qualifiers in std::bind invocation
...
PR libstdc++/68912
* include/std/functional (_Bind::operator()): Use lvalue functor to
deduce return type.
* testsuite/20_util/bind/68912.cc: New.
From-SVN: r231652
2015-12-15 14:17:17 +00:00
Tim Shen
3ce38f68f9
re PR libstdc++/68863 (Regular expressions: Backreferences don't work in negative lookahead)
...
PR libstdc++/68863
* include/bits/regex_executor.tcc (_Executor::_M_lookahead):
Copy the captured content for lookahead, so that the backreferences
inside can refer to them.
* testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc:
New testcase.
From-SVN: r231641
2015-12-15 04:50:29 +00:00
Jonathan Wakely
f3d7dd52a6
Fix std::invoke support for reference_wrappers
...
PR libstdc++/59768
* include/std/functional (_Unwrap, __invfwd): Define.
(__invoke_impl): Remove reference_wrapper overloads and use __invfwd.
* include/std/type_traits (__result_of_memobj, __result_of_memfun):
Add partial specializations for const reference_wrappers and simplify.
* testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors.
* testsuite/20_util/function_objects/invoke/59768.cc: New.
From-SVN: r231574
2015-12-11 21:45:51 +00:00
Ville Voutilainen
e3fc446b9c
re PR libstdc++/68139 (rethrow_if_nested should tolerate overloaded unary operator&)
...
PR libstdc++/68139
From-SVN: r231562
2015-12-11 14:04:23 +02:00
Jonathan Wakely
b2a485f2b0
Change tests to use -std=gnu++14 not -std=gnu++1y
...
* testsuite/experimental/memory/shared_ptr/assign/assign.cc: Replace
-std=gnu++1y with -std=gnu++14.
* testsuite/experimental/memory/shared_ptr/cast/cast.cc: Likewise.
* testsuite/experimental/memory/shared_ptr/comparison/comparison.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/dest/dest.cc: Likewise.
* testsuite/experimental/memory/shared_ptr/modifiers/reset.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/modifiers/swap.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/observers/operators.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/observers/owner_before.cc:
Likewise.
* testsuite/experimental/memory/shared_ptr/observers/use_count.cc:
Likewise.
From-SVN: r231517
2015-12-10 14:39:07 +00:00
Jonathan Wakely
aca12aff8b
Fix dejagnu directives in shared_ptr test
...
PR libstdc++/68825
* include/experimental/bits/shared_ptr.h (__shared_ptr, __weak_ptr,
experimental::shared_ptr, experimental::weak_ptr): Constrain
assignment operators.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
Change to a compile-only test and change dg-excess-errors to dg-error.
From-SVN: r231516
2015-12-10 14:32:16 +00:00
Jonathan Wakely
755be51d02
PR libstdc++/57060 cope with invalid thread IDs
...
PR libstdc++/57060
* include/std/thread (operator==(thread::id, thread::id)): Do not use
__gthread_equal.
(operator<(thread::id, thread::id)): Add comment.
(this_thread::get_id()): Do not use __gthread_self for single-threaded
programs using glibc.
* testsuite/30_threads/this_thread/57060.cc: New.
From-SVN: r231289
2015-12-04 17:32:40 +00:00
Jonathan Wakely
28eca950b7
Fix ambiguity with multiple enable_shared_from_this bases
...
PR libstdc++/56383
* testsuite/20_util/enable_shared_from_this/56383.cc: New.
* include/bits/shared_ptr_base.h (__enable_shared_from_this): Make
friend declaration match previous declaration of
__enable_shared_from_this_helper.
* include/bits/shared_ptr.h (enable_shared_from_this): Likewise.
From-SVN: r231181
2015-12-02 15:08:18 +00:00
Jonathan Wakely
5930d87a2d
Ensure another pretty-printer test uses C++98 mode
...
* testsuite/libstdc++-prettyprinters/debug.cc: Add -std=gnu++98 to
dg-options and avoid use of uniform-init.
From-SVN: r230977
2015-11-26 16:25:55 +00:00
Jonathan Wakely
43a2362b94
Ensure pretty-printer test uses C++98 mode
...
* testsuite/libstdc++-prettyprinters/simple.cc: Add -std=gnu++98 to
dg-options and avoid use of uniform-init.
From-SVN: r230973
2015-11-26 15:42:47 +00:00
Jonathan Wakely
75837d7b13
Improve tests for valid values of iostream bitmask types
...
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Explicitly
check minimum and maximum values, and size of underlying type.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
From-SVN: r230868
2015-11-25 13:49:06 +00:00
Rainer Orth
e5ef217c3e
Port libvtv to Solaris
...
libstdc++-v3:
* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) <solaris2*>: Use
-Wl,-R in VTV_CXXLINKFLAGS.
* configure: Regenerate.
* testsuite/18_support/bad_exception/23591_thread-1.c: Use
-fvtable-verify=none on Solaris 12+.
libgcc:
* Makefile.in (VTV_CFLAGS): New variable.
(vtv_start$(objext), vtv_end$(objext), vtv_end$(objext))
(vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it.
* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o
to extra_parts if $enable_vtable_verify = yes.
libvtv:
* configure.tgt (*-*-solaris2.[1-9]*): Declare supported.
* configure.ac: Call AC_USE_SYSTEM_EXTENSIONS.
<*-*-solaris2*>: Check for init priority support.
Check for getexecname, __fortify_fail, _obstack_begin.
(VTV_NO_OBSTACK): New conditional.
* configure: Regenerate.
* Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition.
Create empty config.h
* Makefile.in: Regenerate.
* vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New
variable.
(read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it.
(dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it.
(__fortify_fail): Wrap in HAVE___FORTIFY_FAIL
[!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation.
(read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE.
(iterate_modules): Fix typo.
Use VTV_PAGE_SIZE.
(dl_iterate_phdr_callback): Fix typo.
Use VTV_PAGE_SIZE.
(__VLTChangePermission): Fix typos.
include:
* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
__sparc__]: Define.
gcc:
* config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
(STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
(STARTFILE_SPEC): Use %(startfile_vtv).
(ENDFILE_SPEC): Use %(endfile_vtv).
(SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
ENDFILE_VTV_SPEC.
* gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
From-SVN: r230865
2015-11-25 10:30:25 +00:00
Rainer Orth
ef3a75060e
Handle C++11 <math.h> overloads on Solaris 12
...
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test.
* configure.ac: Use it.
* configure: Regenerate.
* config.h.in: Regenerate.
* include/c_global/cmath [__cplusplus >= 201103L]
(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
(std::isfinite): Likewise.
(std::isinf): Likewise.
(std::isnan): Likewise.
(std::isnormal): Likewise.
(std::signbit): Likewise.
(std::isgreater): Likewise.
(std::isgreaterequal): Likewise.
(std::isless): Likewise.
(std::islessequal): Likewise.
(std::islessgreater): Likewise.
(std::isunordered): Likewise.
(std::acosh): Likewise.
(std::asinh): Likewise.
(std::atanh): Likewise.
(std::cbrt): Likewise.
(std::copysign): Likewise.
(std::erf): Likewise.
(std::erfc): Likewise.
(std::exp2): Likewise.
(std::expm1): Likewise.
(std::fdim): Likewise.
(std::fma): Likewise.
(std::fmax): Likewise.
(std::fmin): Likewise.
(std::hypot): Likewise.
(std::ilogb): Likewise.
(std::lgamma): Likewise.
(std::llrint): Likewise.
(std::llround): Likewise.
(std::log1p): Likewise.
(std::log2): Likewise.
(std::logb): Likewise.
(std::lrint): Likewise.
(std::lround): Likewise.
(std::nearbyint): Likewise.
(std::nextafter): Likewise.
(std::nexttoward): Likewise.
(std::remainder): Likewise.
(std::remquo): Likewise.
(std::rint): Likewise.
(std::round): Likewise.
(std::scalbln): Likewise.
(std::scalbn): Likewise.
(std::tgamma): Likewise.
(std::trunc): Likewise.
* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh):
Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
(std::tr1::asinh): Likewise.
(std::tr1::atanh): Likewise.
(std::tr1::cbrt): Likewise.
(std::tr1::copysign): Likewise.
(std::tr1::erf): Likewise.
(std::tr1::erfc): Likewise.
(std::tr1::exp2): Likewise.
(std::tr1::expm1): Likewise.
(std::tr1::fabs): Likewise.
(std::tr1::fdim): Likewise.
(std::tr1::fma): Likewise.
(std::tr1::fmax): Likewise.
(std::tr1::fmin): Likewise.
(std::tr1::hypot): Likewise.
(std::tr1::ilogb): Likewise.
(std::tr1::lgamma): Likewise.
(std::tr1::llrint): Likewise.
(std::tr1::llround): Likewise.
(std::tr1::log1p): Likewise.
(std::tr1::log2): Likewise.
(std::tr1::logb): Likewise.
(std::tr1::lrint): Likewise.
(std::tr1::lround): Likewise.
(std::tr1::nearbyint): Likewise.
(std::tr1::nextafter): Likewise.
(std::tr1::nexttoward): Likewise.
(std::tr1::remainder): Likewise.
(std::tr1::remquo): Likewise.
(std::tr1::rint): Likewise.
(std::tr1::scalbln): Likewise.
(std::tr1::scalbn): Likewise.
(std::tr1::tgamma): Likewise.
(std::tr1::trunc): Likewise.
(std::tr1::pow): Likewise.
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Restrict dg-xfail-if, dg-excess-errors to *-*-solaris2.1[01]*.
From-SVN: r230807
2015-11-24 13:15:43 +00:00
David Edelsohn
3b58931386
* testsuite/23_containers/vector/profile/vector.cc: Add maxdata option on AIX.
...
From-SVN: r230701
2015-11-21 00:38:25 -05:00
Doug Evans
46d825c59c
re PR libstdc++/67440 (pretty-printing of a const set<foo> fails)
...
PR libstdc++/67440
* python/libstdcxx/v6/printers.py (find_type): Handle "const" in
type name.
* testsuite/libstdc++-prettyprinters/debug.cc: Add test for
const set<int>.
* testsuite/libstdc++-prettyprinters/simple.cc: Ditto.
* testsuite/libstdc++-prettyprinters/simple11.cc: Ditto.
From-SVN: r230437
2015-11-16 21:32:26 +00:00
Jonathan Wakely
230b4edeee
Fix std::wstring capacity test for short wchar_t
...
* testsuite/21_strings/basic_string/capacity/char/18654.cc: Use
real minimum capacity.
* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
Likewise.
From-SVN: r230378
2015-11-14 17:24:42 +00:00
David Edelsohn
bfc6afd929
* testsuite/experimental/random/randint.cc: Add dg-add-options tls.
...
From-SVN: r230377
2015-11-14 09:22:53 -05:00
Jonathan Wakely
5ae465c530
Define std::experimental::randint etc.
...
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/experimental/random: New.
* testsuite/experimental/random/randint.cc: New.
From-SVN: r230332
2015-11-13 16:49:40 +00:00
John Marino
4216708a00
Improve portability of named locale tests
...
2015-11-13 John Marino <gnugcc@marino.st>
* testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc:
Use portable locale name
* testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: Likewise.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: Likewise.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: Likewise.
* testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: Likewise.
* testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt/in/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/in/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/codecvt/in/wchar_t/2.cc: Likewise.
* testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/codecvt/length/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/length/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/codecvt/length/wchar_t/2.cc: Likewise.
* testsuite/22_locale/codecvt/length/wchar_t/3.cc: Likewise.
* testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: Likewise.
* testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: Likewise.
* testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt/out/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/out/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/codecvt/out/wchar_t/2.cc: Likewise.
* testsuite/22_locale/codecvt/out/wchar_t/7.cc: Likewise.
* testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/codecvt_byname/50714.cc: Likewise.
* testsuite/22_locale/collate/compare/char/1.cc: Likewise.
* testsuite/22_locale/collate/compare/char/2.cc: Likewise.
* testsuite/22_locale/collate/compare/char/3.cc: Likewise.
* testsuite/22_locale/collate/compare/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/collate/compare/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/collate/compare/wchar_t/1.cc: Likewise.
* testsuite/22_locale/collate/compare/wchar_t/2.cc: Likewise.
* testsuite/22_locale/collate/compare/wchar_t/3.cc: Likewise.
* testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/collate/hash/char/2.cc: Likewise.
* testsuite/22_locale/collate/hash/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/collate/hash/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/collate/hash/wchar_t/2.cc: Likewise.
* testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/collate/transform/char/2.cc: Likewise.
* testsuite/22_locale/collate/transform/char/3.cc: Likewise.
* testsuite/22_locale/collate/transform/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/collate/transform/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/collate/transform/wchar_t/2.cc: Likewise.
* testsuite/22_locale/collate/transform/wchar_t/3.cc: Likewise.
* testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/collate_byname/named_equivalence.cc: Likewise.
* testsuite/22_locale/ctype/cons/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/cons/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/is/char/2.cc: Likewise.
* testsuite/22_locale/ctype/is/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/is/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise.
* testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/narrow/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/scan/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/scan/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/to/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/to/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/widen/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/widen/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/ctype/widen/wchar_t/2.cc: Likewise.
* testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/facet/2.cc: Likewise.
* testsuite/22_locale/locale/cons/12352.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/22_locale/locale/cons/2.cc: Likewise.
* testsuite/22_locale/locale/cons/38365.cc: Likewise.
* testsuite/22_locale/locale/cons/38368.cc: Likewise.
* testsuite/22_locale/locale/cons/4.cc: Likewise.
* testsuite/22_locale/locale/cons/40184.cc: Likewise.
* testsuite/22_locale/locale/cons/7.cc: Likewise.
* testsuite/22_locale/locale/global_locale_objects/14071.cc: Likewise.
* testsuite/22_locale/locale/global_locale_objects/2.cc: Likewise.
* testsuite/22_locale/messages/13631.cc: Likewise.
* testsuite/22_locale/messages/members/char/1.cc: Likewise.
* testsuite/22_locale/messages/members/char/2.cc: Likewise.
* testsuite/22_locale/messages/members/char/3.cc: Likewise.
* testsuite/22_locale/messages/members/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/messages/members/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/messages_byname/named_equivalence.cc: Likewise.
* testsuite/22_locale/money_get/get/char/1.cc: Likewise.
* testsuite/22_locale/money_get/get/char/10.cc: Likewise.
* testsuite/22_locale/money_get/get/char/11.cc: Likewise.
* testsuite/22_locale/money_get/get/char/11528.cc: Likewise.
* testsuite/22_locale/money_get/get/char/12.cc: Likewise.
* testsuite/22_locale/money_get/get/char/13.cc: Likewise.
* testsuite/22_locale/money_get/get/char/15.cc: Likewise.
* testsuite/22_locale/money_get/get/char/16.cc: Likewise.
* testsuite/22_locale/money_get/get/char/17.cc: Likewise.
* testsuite/22_locale/money_get/get/char/18.cc: Likewise.
* testsuite/22_locale/money_get/get/char/2.cc: Likewise.
* testsuite/22_locale/money_get/get/char/3.cc: Likewise.
* testsuite/22_locale/money_get/get/char/4.cc: Likewise.
* testsuite/22_locale/money_get/get/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/money_get/get/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/10.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/11.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/11528.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/12.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/13.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/15.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/16.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/17.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/18.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/money_put/put/char/1.cc: Likewise.
* testsuite/22_locale/money_put/put/char/2.cc: Likewise.
* testsuite/22_locale/money_put/put/char/3.cc: Likewise.
* testsuite/22_locale/money_put/put/char/9780-3.cc: Likewise.
* testsuite/22_locale/money_put/put/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/money_put/put/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/moneypunct/40712.cc: Likewise.
* testsuite/22_locale/moneypunct/members/char/2.cc: Likewise.
* testsuite/22_locale/moneypunct/members/char/wrapped_env.cc:
Likewise.
* testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/moneypunct/members/wchar_t/2.cc: Likewise.
* testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/moneypunct_byname/named_equivalence.cc:
Likewise.
* testsuite/22_locale/num_get/get/char/1.cc: Likewise.
* testsuite/22_locale/num_get/get/char/3.cc: Likewise.
* testsuite/22_locale/num_get/get/char/5.cc: Likewise.
* testsuite/22_locale/num_get/get/char/6.cc: Likewise.
* testsuite/22_locale/num_get/get/char/9.cc: Likewise.
* testsuite/22_locale/num_get/get/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/num_get/get/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/3.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/5.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/6.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/num_put/put/char/1.cc: Likewise.
* testsuite/22_locale/num_put/put/char/20909.cc: Likewise.
* testsuite/22_locale/num_put/put/char/20914.cc: Likewise.
* testsuite/22_locale/num_put/put/char/3.cc: Likewise.
* testsuite/22_locale/num_put/put/char/5.cc: Likewise.
* testsuite/22_locale/num_put/put/char/9780-2.cc: Likewise.
* testsuite/22_locale/num_put/put/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/num_put/put/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise.
* testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise.
* testsuite/22_locale/num_put/put/wchar_t/20914.cc: Likewise.
* testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise.
* testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise.
* testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/22_locale/numpunct/members/char/2.cc: Likewise.
* testsuite/22_locale/numpunct/members/char/3.cc: Likewise.
* testsuite/22_locale/numpunct/members/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/numpunct/members/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/numpunct/members/wchar_t/2.cc: Likewise.
* testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/numpunct_byname/named_equivalence.cc: Likewise.
* testsuite/22_locale/time_get/date_order/char/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get/char/2.cc: Likewise.
* testsuite/22_locale/time_get/get/wchar_t/2.cc: Likewise.
* testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise.
* testsuite/22_locale/time_get/get_date/char/2.cc: Likewise.
* testsuite/22_locale/time_get/get_date/char/26701.cc: Likewise.
* testsuite/22_locale/time_get/get_date/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise.
* testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise.
* testsuite/22_locale/time_get/get_date/wchar_t/26701.cc: Likewise.
* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Likewise.
* testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise.
* testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise.
* testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_time/char/1.cc: Likewise.
* testsuite/22_locale/time_get/get_time/char/2.cc: Likewise.
* testsuite/22_locale/time_get/get_time/char/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise.
* testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise.
* testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise.
* testsuite/22_locale/time_get/get_weekday/char/38081-1.cc: Likewise.
* testsuite/22_locale/time_get/get_weekday/char/38081-2.cc: Likewise.
* testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise.
* testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_year/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc:
Likewise.
* testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc:
Likewise.
* testsuite/22_locale/time_put/put/char/17038.cc: Likewise.
* testsuite/22_locale/time_put/put/char/2.cc: Likewise.
* testsuite/22_locale/time_put/put/char/3.cc: Likewise.
* testsuite/22_locale/time_put/put/char/4.cc: Likewise.
* testsuite/22_locale/time_put/put/char/6.cc: Likewise.
* testsuite/22_locale/time_put/put/char/7.cc: Likewise.
* testsuite/22_locale/time_put/put/char/8.cc: Likewise.
* testsuite/22_locale/time_put/put/char/9780-1.cc: Likewise.
* testsuite/22_locale/time_put/put/char/wrapped_env.cc: Likewise.
* testsuite/22_locale/time_put/put/char/wrapped_locale.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc: Likewise.
* testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/13007.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/2.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/char/9322.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: Likewise.
* testsuite/27_io/basic_ios/copyfmt/char/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc:
Likewise.
* testsuite/27_io/basic_streambuf/cons/57394.cc: Likewise.
* testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: Likewise.
* testsuite/27_io/basic_streambuf/imbue/char/9322.cc: Likewise.
* testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: Likewise.
* testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc: Likewise.
* testsuite/27_io/basic_stringbuf/imbue/char/9322.cc: Likewise.
* testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc: Likewise.
* testsuite/27_io/manipulators/extended/get_money/char/1.cc: Likewise.
* testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc:
Likewise.
* testsuite/27_io/manipulators/extended/get_time/char/2.cc: Likewise.
* testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc:
Likewise.
* testsuite/27_io/manipulators/extended/put_money/char/1.cc: Likewise.
* testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc:
Likewise.
* testsuite/27_io/manipulators/extended/put_time/char/2.cc: Likewise.
* testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc:
Likewise.
* testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Likewise.
* testsuite/27_io/objects/wchar_t/9520.cc: Likewise.
* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Check
for named locale as appropriate for target.
* testsuite/util/testsuite_hooks.h (ISO_8859): Define macro to form
target's preferred form of locale name.
From-SVN: r230329
2015-11-13 15:25:48 +00:00
Jennifer Yao
23c64853c8
More fine-grained autoconf checks for C99 library
...
2015-11-13 Jennifer Yao <jenny.hyphen.fa@gmail.com>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/58393
PR libstdc++/61580
* acinclude.m4 (GLIBCXX_ENABLE_C99): Perform tests twice, with
-std=c++11 as well as -std=c++98, and define separate macros for each.
Cache the results of checking for complex math and wide character
functions. Reformat for readability.
* config.h.in: Regenerate.
* include/bits/c++config: Define _GLIBCXX_USE_C99_XXX macros to
either _GLIBCXX98_USE_C99_XXX or _GLIBCXX11_USE_C99_XXX according to
language standard in use.
* config/locale/dragonfly/c_locale.h (std::__convert_from_v): Replace
_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
* config/locale/generic/c_locale.h (std::__convert_from_v): Likewise.
* config/locale/gnu/c_locale.h (std::__convert_from_v): Likewise.
* config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99_STDIO,
_GLIBCXX_USE_C99_STDLIB, and _GLIBCXX_USE_C99_WCHAR.
* configure: Regenerate.
* include/bits/basic_string.h: Make numeric conversion functions
depend on _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, or
_GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99.
* include/ext/vstring.h: Likewise.
* include/bits/locale_facets.tcc (std::num_put::_M_insert_float):
Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
* include/bits/locale_facets_nonio.tcc (std::money_put::do_put):
Likewise.
* include/c_compatibility/math.h: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_MATH.
* include/c_compatibility/wchar.h: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_WCHAR.
* include/c_global/cstdio: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDIO.
* include/c_global/cstdlib: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDLIB.
* include/c_global/cwchar: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_WCHAR.
* include/c_std/cstdio: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDIO.
* include/c_std/cstdlib: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDLIB.
* include/c_std/cwchar: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_WCHAR.
* include/tr1/cstdio: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDIO.
* include/tr1/cstdlib: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDLIB.
* include/tr1/cwchar: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_WCHAR.
* include/tr1/stdlib.h: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDLIB.
* src/c++98/locale_facets.cc (std::__num_base::_S_format_float):
Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
* testsuite/18_support/exception_ptr/60612-terminate.cc: Replace
_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
* testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
(test01): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stof.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoi.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stol.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stold.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoll.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoul.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
stoull.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
to_wstring.cc: Likewise.
* testsuite/26_numerics/headers/cstdlib/13943.cc: Replace
_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
* testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: Likewise.
* testsuite/lib/libstdc++.exp (check_v3_target_string_conversions):
Change preprocessor #if conditional so that it uses
_GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, and
_GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99.
* testsuite/tr1/8_c_compatibility/cmath/templates.cc: Replace
_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_MATH.
* testsuite/tr1/8_c_compatibility/cstdio/functions.cc: Replace
_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
* testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Replace
_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
* testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc: Likewise.
* testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Replace
_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR.
* testsuite/util/testsuite_fs.h: Replace _GLIBCXX_USE_C99 with
_GLIBCXX_USE_C99_STDIO.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r230324
2015-11-13 14:51:25 +00:00
Fan You
930d560203
Implement std::experimental::shared_ptr with array support
...
2015-11-13 Fan You <youfan.noey@gmail.com>
Jonathan Wakely <jwakely@redhat.com>
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/experimental/bits/shared_ptr.h: New.
* include/experimental/memory: Include new header.
* testsuite/experimental/memory/shared_ptr/assign/assign.cc: New.
* testsuite/experimental/memory/shared_ptr/cast/cast.cc: New.
* testsuite/experimental/memory/shared_ptr/comparison/comparison.cc:
New.
* testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc: New.
* testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc: New.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc: New.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: New.
* testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc: New.
* testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: New.
* testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: New.
* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc:
New.
* testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: New.
* testsuite/experimental/memory/shared_ptr/dest/dest.cc: New.
* testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: New.
* testsuite/experimental/memory/shared_ptr/modifiers/swap.cc: New.
* testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc:
New.
* testsuite/experimental/memory/shared_ptr/observers/operators.cc:
New.
* testsuite/experimental/memory/shared_ptr/observers/owner_before.cc:
New.
* testsuite/experimental/memory/shared_ptr/observers/use_count.cc: New.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r230300
2015-11-13 11:05:28 +00:00
Fan You
bfeffbd1ae
Implement C++ LFTSv1 polymorphic memory resources
...
2015-11-13 Fan You <youfan.noey@gmail.com>
* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* include/bits/uses_allocator.h (__erased_type): Define.
(__uses_allocator_helper): Check for __erased_type.
* include/experimental/memory_resource: New.
* include/experimental/utlity: New.
* testsuite/experimental/type_erased_allocator/1.cc: New.
* testsuite/experimental/type_erased_allocator/1_neg.cc: New.
* testsuite/experimental/type_erased_allocator/2.cc: New.
* testsuite/experimental/type_erased_allocator/uses_allocator.cc: New.
From-SVN: r230294
2015-11-13 10:00:59 +00:00
Jonathan Wakely
fbfae2f089
Extend valid values of iostream bitmask types
...
PR libstdc++/56158
* include/bits/ios_base.h (_Ios_Fmtflags, _Ios_Openmode, _Ios_Iostate):
Define enumerators to ensure all values of type int are valid values
of the enumeration type.
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Add new cases.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
From-SVN: r230267
2015-11-12 17:08:42 +00:00
Ville Voutilainen
c3a6648b1c
Implement D0013R2, logical type traits.
...
2015-11-12 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement D0013R2, logical type traits.
/libstdc++-v3
* include/experimental/type_traits (conjunction_v, disjunction_v,
negation_v): New.
* include/std/type_traits (conjunction, disjunction, negation):
Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/experimental/type_traits/value.cc: Likewise.
* testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: New.
* testsuite/20_util/logical_traits/requirements/typedefs.cc: Likewise.
* testsuite/20_util/logical_traits/value.cc: Likewise.
/testsuite
* g++.dg/cpp0x/Wattributes1.C: Adjust.
From-SVN: r230258
2015-11-12 15:56:31 +02:00
Jonathan Wakely
f55e699d3d
Loop in std::this_thread sleep functions
...
PR libstdc++/60421
* include/std/thread (this_thread::sleep_for): Retry on EINTR.
(this_thread::sleep_until): Retry if time not reached.
* src/c++11/thread.cc (__sleep_for): Retry on EINTR.
* testsuite/30_threads/this_thread/60421.cc: Test interruption and
non-steady clocks.
From-SVN: r230183
2015-11-11 17:08:51 +00:00
Ville Voutilainen
269fa2a91b
LWG 2510, make the default constructors of library tag types explicit.
...
2015-11-10 Ville Voutilainen <ville.voutilainen@gmail.com>
LWG 2510, make the default constructors of library tag types
explicit.
* include/bits/mutex.h (defer_lock_t, try_lock_t,
adopt_lock_t): Add an explicit default constructor.
* include/bits/stl_pair.h (piecewise_construct_t): Likewise.
* include/bits/uses_allocator.h (allocator_arg_t): Likewise.
* libsupc++/new (nothrow_t): Likewise.
* testsuite/17_intro/tag_type_explicit_ctor.cc: New.
From-SVN: r230175
2015-11-11 16:47:19 +02:00
Jonathan Wakely
832ca6ac72
re PR libstdc++/64651 (std::rethrow_exception not found by ADL)
...
PR libstdc++/64651
* libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration
to __exception_ptr namespace.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL.
Remove unnecessary test variables.
From-SVN: r230147
2015-11-11 10:08:23 +00:00
Jonathan Wakely
d4a9dffbaa
Fix return type of heterogeneous find for sets
...
PR libstdc++/68190
* include/bits/stl_multiset.h (multiset::find): Fix return types.
* include/bits/stl_set.h (set::find): Likewise.
* testsuite/23_containers/map/operations/2.cc: Test find return types.
* testsuite/23_containers/multimap/operations/2.cc: Likewise.
* testsuite/23_containers/multiset/operations/2.cc: Likewise.
* testsuite/23_containers/set/operations/2.cc: Likewise.
From-SVN: r230113
2015-11-10 15:12:24 +00:00
Kai Tietz
277ec793cb
* testsuite/26_numerics/complex/requirements/constexpr.cc
...
* testsuite/26_numerics/complex/requirements/constexpr_functions.cc:
Use constexpr where needed.
From-SVN: r229883
2015-11-06 14:43:33 -05:00
David Malcolm
9a4bbd5dd2
libstdc++v3: Explicitly disable carets and colorization within testsuite
...
libstdc++-v3/ChangeLog:
* testsuite/lib/libstdc++.exp (v3_target_compile): Add
-fno-diagnostics-show-caret -fdiagnostics-color=never to
option's additional_flags.
From-SVN: r229876
2015-11-06 18:44:05 +00:00
Ville Voutilainen
f763219373
Make the default constructors of tuple and pair conditionally explicit.
...
2015-11-03 Ville Voutilainen <ville.voutilainen@gmail.com>
Make the default constructors of tuple and pair conditionally explicit.
* include/std/type_traits (is_unsigned, __is_array_unknown_bounds,
__is_default_constructible_atom, __is_default_constructible_safe,
__is_direct_constructible_new_safe, __is_direct_constructible_ref_cast,
__is_nt_default_constructible_impl, is_nothrow_default_constructible,
is_nothrow_constructible, is_nothrow_assignable,
is_trivially_constructible, is_trivially_copy_constructible,
is_trivially_move_constructible, is_trivially_assignable,
is_trivially_copy_assignable, is_trivially_move_assignable,
is_trivially_destructible): Simplify.
* include/std/type_traits (
__do_is_implicitly_default_constructible_impl,
__is_implicitly_default_constructible_impl,
__is_implicitly_default_constructible_safe,
__is_implicitly_default_constructible): New.
* include/bits/stl_pair.h (pair::pair()): Use it.
* include/std/tuple (tuple<_T1, _T2>::tuple): Use it.
* include/std/tuple (_ImplicitlyDefaultConstructibleTuple): New.
* include/std/tuple (tuple<_Types...>::tuple()): Use it.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc: New.
* testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc: Likewise.
* testsuite/20_util/is_implicitly_default_constructible/value.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
From-SVN: r229699
2015-11-03 10:41:40 +02:00
Jonathan Wakely
93e954005f
Implement C++17 std::invoke and LWG DR 2219
...
* include/std/functional (__invoke_impl): New overloads.
(__invoke): Replace with a single function calling __invoke_impl.
(invoke): Add C++17 std::invoke.
(reference_wrapper::operator()): Qualify call to __invoke.
(_Mem_fn_traits_base, _Mem_fn_traits): Remove unused typedefs.
(_Mem_fn_base): Remove unused typedefs and implement call operator in
terms of __invoke.
* include/std/future (__future_base::_Async_state_commonV2): Do not
pass reference_wrapper as object argument to call_once.
* include/std/type_traits (result_of): Define nested __invoke_type.
Handle reference_wrapper as per LWG 2219.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error directives.
* testsuite/20_util/function_objects/mem_fn/55463.cc: Remove tests
using member functions of reference_wrapper.
From-SVN: r229290
2015-10-25 01:00:54 +01:00
Jonathan Wakely
6fbd598400
Return deferred future if thread cannot be run
...
* include/std/future (async): Use deferred function on exception.
* testsuite/30_threads/async/except.cc: New.
From-SVN: r229289
2015-10-24 22:36:50 +01:00
Aurelio Remonda
6b6254db8a
Shrink std::random_shuffle test to pass on simulators
...
2015-10-16 Aurelio Remonda <aurelio.remonda@tallertechnologies.com>
* testsuite/25_algorithms/random_shuffle/moveable.cc: Change variable
N from const int N = 200000 to const unsigned int N = 10000.
Delete useless fill_ascending function call.
From-SVN: r228876
2015-10-16 12:12:15 +01:00
Szabolcs Nagy
750002e0ee
mark libstdc++ tests unsupported if they fail with "relocation truncated"
...
* testsuite/lib/libstdc++.exp (libstdc++-dg-test): Check for
unsupported compiler output.
From-SVN: r228844
2015-10-15 15:15:37 +00:00
Ville Voutilainen
057ce49719
re PR c++/67844 (Cannot make tuple of class with template constructor)
...
2015-10-05 Ville Voutilainen <ville.voutilainen@gmail.com>
PR 67844.
* include/std/tuple (_TC::_NonNestedTuple): Eagerly reject
conversions from tuple types same as the target tuple.
* testsuite/20_util/tuple/67844.cc: New.
* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Add
a missing copyright header.
From-SVN: r228468
2015-10-05 12:57:20 +03:00
Jonathan Wakely
1ca9de5126
Fix testsuite failures with --disable-wchar_t
...
* testsuite/21_strings/basic_string/literals/types.cc: Guard use of
wchar_t with _GLIBCXX_USE_WCHAR_T.
* testsuite/21_strings/basic_string/literals/values.cc: Likewise.
* testsuite/21_strings/basic_string/requirements/citerators.cc:
Likewise.
* testsuite/22_locale/messages/13631.cc: Likewise.
* testsuite/experimental/string_view/literals/types.cc: Likewise.
* testsuite/experimental/string_view/literals/values.cc: Likewise.
From-SVN: r228439
2015-10-03 00:43:17 +01:00
Jonathan Wakely
ee216d80a5
minimal.cc: Minor tweaks to match narrow char version.
...
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
Minor tweaks to match narrow char version.
From-SVN: r228436
2015-10-02 23:18:06 +01:00
Jonathan Wakely
c980d0b4b7
Fix tests that fail with old std::string
...
* testsuite/21_strings/basic_string/allocator/char/minimal.cc: Guard
explicit instantiation with check for new ABI.
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
Likewise. Use wchar_t as char_type.
From-SVN: r228435
2015-10-02 23:13:18 +01:00
Jonathan Wakely
7fcdbdd21d
Allow Filesystem TS to compile without wchar_t
...
* include/bits/locale_conv.h [!_GLIBCXX_USE_WCHAR_T]
(__do_str_codecvt, __str_codecvt_in, __str_codecvt_out): Enable.
* include/experimental/fs_path.h [!_GLIBCXX_USE_WCHAR_T]
(path::wstring, path::generic_wstring): Disable.
* src/filesystem/path.cc (path::_S_convert_loc)
[!_GLIBCXX_USE_WCHAR_T]: Skip conversion.
* testsuite/experimental/filesystem/path/assign/assign.cc: Check for
wchar_t support.
* testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
* testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
From-SVN: r228417
2015-10-02 20:38:38 +01:00
Jonathan Wakely
43222a5ec8
testsuite_fs.h (nonexistent_path): Use less generic name for paths.
...
* testsuite/util/testsuite_fs.h (nonexistent_path): Use less generic
name for paths. Prefer snprintf to sprintf.
From-SVN: r228416
2015-10-02 20:38:27 +01:00
Jonathan Wakely
6d60110654
Leave errno unchanged by successful std::stoi etc
...
* include/ext/string_conversions.h (__stoa): Save and restore errno.
* testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc:
New.
From-SVN: r228249
2015-09-29 16:15:39 +01:00
Jonathan Wakely
b59882293f
PR libstdc++/67583 Fix invalid sputn calls in tests
...
PR libstdc++/67583
* testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Fix sputn call
with mismatched arguments.
* testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
From-SVN: r228245
2015-09-29 14:31:51 +01:00
Ville Voutilainen
5e2f2cd584
Avoid creating dangling references in case of nested tuples
...
for tuple constructors that construct from other tuples.
2015-09-25 Ville Voutilainen <ville.voutilainen@gmail.com>
Avoid creating dangling references in case of nested tuples
for tuple constructors that construct from other tuples.
* include/std/tuple (_TC::_NonNestedTuple): New.
* include/std/tuple (tuple::_TNTC): New.
* include/std/tuple (tuple(const tuple<_UElements...>&),
tuple(tuple<_UElements...>&&): Use _TNTC.
* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: New.
From-SVN: r228134
2015-09-25 19:41:45 +03:00
Jonathan Wakely
9bc5028273
Leave moved-from std::deque in a valid state
...
PR libstdc++/67707
* include/bits/stl_deque.h (_Deque_base::_M_move_impl): Initialize
empty object.
* testsuite/23_containers/deque/allocator/move.cc: Check moved-from
deque.
From-SVN: r228090
2015-09-24 16:46:24 +01:00
Jonathan Wakely
429ee11aa3
Fix semantics of Filesystem TS directory iterators
...
[class.directory_iterator] p4 and [directory_iterator.members] p4
require that only the default constructor and ignored permission denied
errors can create the end iterator.
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Remove _GLIBCXX_
prefix from HAVE_STRUCT_DIRENT_D_TYPE.
* config.h.in: Regenerate.
* configure: Regenerate.
* include/experimental/fs_dir.h (operator==, operator==):
Use owner_before instead of pointer equality.
(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
* src/filesystem/dir.cc (ErrorCode): Remove.
(_Dir::advance): Change ErrorCode parameter to error_code*, add
directory_options parameter and check it on error.
(opendir): Rename to open_dir to avoid clashing with macro. Change
ErrorCode parameter to error_code*.
(make_shared_dir): Remove.
(native_readdir) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Don't set errno.
(directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove.
(directory_iterator(const path&, directory_options, error_code*)):
Pass options to _Dir::advance and create non-end iterator on error.
(recursive_directory_iterator(const path&, directory_options,
error_code*)): Clear error_code on ignored error, create non-end
iterator otherwise.
(recursive_directory_iterator::increment): Pass _M_options to
_Dir::advance.
(recursive_directory_iterator::pop): Likewise.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
New.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: New.
From-SVN: r228042
2015-09-23 12:26:45 +01:00
Jonathan Wakely
366703118c
Fix filesystem::create_directories() function
...
* src/filesystem/ops.cc (is_dot, is_dotdot): Define new helpers.
(create_directories): Fix error handling.
* testsuite/experimental/filesystem/operations/create_directories.cc:
New.
From-SVN: r228041
2015-09-23 12:25:59 +01:00
Jonathan Wakely
310055e7b4
Handle alignment in __atomic_is_lock_free
...
gcc:
2015-09-17 Richard Henderson <rth@redhat.com>
PR libstdc++/65913
* builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
pointers that encode the alignment of the object.
libstdc++-v3:
2015-09-17 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/65913
* include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
__atomic_base<_PTp*>::is_lock_free()): Call the built-in with the
immediate pointer value, not a variable.
* include/std/atomic (atomic<T>::is_lock_free()): Likewise.
* testsuite/29_atomics/atomic/65913.cc: New.
From-SVN: r227878
2015-09-17 16:46:04 +01:00
Jonathan Wakely
01610fec49
Remove non-deterministic part of canonical() test
...
* testsuite/experimental/filesystem/operations/canonical.cc: Remove
non-deterministic part of the test.
From-SVN: r227873
2015-09-17 16:33:20 +01:00
Jonathan Wakely
3036299861
Implement filesystem::canonical() without realpath
...
PR libstdc++/67173
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check _XOPEN_VERSION
and PATH_MAX for _GLIBCXX_USE_REALPATH.
* config.h.in: Regenerate.
* configure: Regenerate.
* src/filesystem/ops.cc: (canonical) [!_GLIBCXX_USE_REALPATH]: Add
alternative implementation.
* testsuite/experimental/filesystem/operations/canonical.cc: New.
* testsuite/experimental/filesystem/operations/exists.cc: Add more
tests.
* testsuite/experimental/filesystem/operations/absolute.cc: Add test
variables.
* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
* testsuite/experimental/filesystem/operations/current_path.cc:
Likewise.
* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
* testsuite/experimental/filesystem/operations/status.cc: Likewise.
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
Likewise.
From-SVN: r227836
2015-09-16 23:50:28 +01:00
John Marino
1b741475ff
Fix invalid UTF-8 in wchar_t tests.
...
2015-09-11 John Marino <gnugcc@marino.st>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/67096
* testsuite/22_locale/codecvt/in/wchar_t/4.cc: Do not test code points
above U+10FFFF.
* testsuite/22_locale/codecvt/in/wchar_t/8.cc: Likewise.
* testsuite/22_locale/codecvt/in/wchar_t/9.cc: Likewise.
* testsuite/22_locale/codecvt/length/wchar_t/4.cc: Likewise.
* testsuite/22_locale/codecvt/out/wchar_t/4.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
* testsuite/27_io/objects/wchar_t/11.cc: Likewise.
* testsuite/27_io/objects/wchar_t/12.cc: Likewise.
* testsuite/27_io/objects/wchar_t/13.cc: Likewise.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r227686
2015-09-11 14:06:42 +01:00
Jonathan Wakely
f12ddb6249
Rationalise PCH headers and 17_intro/headers tests.
...
PR libstdc++/64857
* doc/xml/manual/using.xml: Improve aggregate header documentation.
* doc/html/manual/*: Regenerate.
* include/precompiled/extc++.h: Include <bits/stdc++.h> for C++11
and later and include more extension headers.
* testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
redundant header.
* testsuite/17_intro/headers/c++200x/: Rename to c++2011.
* testsuite/17_intro/headers/c++2014/all_attributes.cc: Remove
redundant headers.
* testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: New.
* testsuite/17_intro/headers/c++2014/all_no_rtti.cc: New.
* testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: New.
* testsuite/17_intro/headers/c++2014/operator_names.cc: New.
* testsuite/17_intro/headers/c++2014/stdc++.cc: New.
* testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
New.
From-SVN: r227684
2015-09-11 13:25:43 +01:00
Jonathan Wakely
5caff414f1
Implement N4258 noexcept for std::basic_string.
...
PR libstdc++/58265
* doc/xml/manual/intro.xml: Document LWG 2063 and 2064 resolutions.
* doc/html/manual/bugs.html: Regenerate.
* include/bits/basic_string.h (basic_string): Implement N4258. Add
correct exception-specifications and propagate allocators correctly.
* include/bits/basic_string.tcc (basic_string::swap): Propagate
allocators correctly.
* include/debug/string (__gnu_debug::basic_string): Add correct
exceptions-specifications and allcoator-extended constructors.
* testsuite/21_strings/basic_string/allocator/char/copy.cc: New.
* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/char/minimal.cc: New.
* testsuite/21_strings/basic_string/allocator/char/move.cc: New.
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/char/noexcept.cc: New.
* testsuite/21_strings/basic_string/allocator/char/swap.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: New.
* testsuite/util/testsuite_allocator.h (tracker_allocator): Define
defaulted assignment operators.
From-SVN: r227681
2015-09-11 12:02:14 +01:00
Jonathan Wakely
997ed914e2
Allocator-extended constructors for container adaptors.
...
PR libstdc++/65092
* include/bits/stl_queue.h (queue, priority_queue): Add
allocator-extended constructors.
* include/bits/stl_stack.h (stack): Likewise.
* testsuite/23_containers/priority_queue/requirements/
uses_allocator.cc: Test allocator-extended constructors.
* testsuite/23_containers/queue/requirements/uses_allocator.cc:
Likewise.
* testsuite/23_containers/stack/requirements/uses_allocator.cc:
Likewise.
From-SVN: r227680
2015-09-11 10:51:29 +01:00
Jonathan Wakely
a789097385
* testsuite/util/testsuite_allocator.h (PointerBase::operator[]): Add.
...
From-SVN: r227661
2015-09-10 20:33:09 +01:00
Jonathan Wakely
94eb2ddbf0
1.cc: Verify the string contents.
...
* testsuite/21_strings/basic_string/operators/char/1.cc: Verify the
string contents.
From-SVN: r227660
2015-09-10 20:33:04 +01:00
Jonathan Wakely
93023f35f7
Relax Debug Mode assertions on operator-> for smart pointers.
...
* include/bits/shared_ptr_base.h (__shared_ptr::operator->): Change
_GLIBCXX_DEBUG_ASSERT to _GLIBCXX_DEBUG_PEDASSERT.
* include/bits/unique_ptr.h (unique_ptr::operator->): Likewise.
* testsuite/20_util/shared_ptr/observers/get.cc: Test operator-> on
empty shared_ptr.
From-SVN: r227524
2015-09-07 18:17:23 +01:00
Jonathan Wakely
2d5e3740fd
Rename shadowed variable in libstdc++ test.
...
* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Rename
shadowed variable.
From-SVN: r227519
2015-09-07 12:33:20 +01:00
Jonathan Wakely
d835619658
Enable timed mutex unlock tests on darwin.
...
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Run on
darwin.
* testsuite/30_threads/timed_mutex/unlock/2.cc: Run on darwin.
From-SVN: r227518
2015-09-07 11:40:25 +01:00
Jonathan Wakely
f16081c2c6
Add portable timed_mutex and recursive_timed_mutex.
...
PR libstdc++/65704
* include/Makefile.am: Add <bits/mutex.h>.
* include/Makefile.in: Regenerate.
* include/bits/mutex.h (__mutex_base, mutex, lock_guard, unique_lock):
New file containing types moved from <mutex>.
* include/std/condition_variable: Include <bits/mutex.h> instead of
<mutex>.
* include/std/mutex (__mutex_base, mutex, lock_guard, unique_lock):
Move to <bits/mutex.h>.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Remove
dg-require-gthreads-timed.
* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/
destructor_locked.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/requirements/standard_layout.cc:
Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
From-SVN: r227490
2015-09-04 12:23:44 +01:00
Edward Smith-Rowland
20b5f0b3e6
Add C++11 header <cuchar>.
...
2015-09-04 Edward Smith-Rowland <3dw4rd@verizon.net>
Jonathan Wakely <jwakely@redhat.com>
* acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Define.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for <uchar.h>.
* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* include/c/cuchar: New.
* include/c_compatibility/uchar.h: New.
* include/c_global/cuchar: New.
* include/c_std/cuchar: New.
* include/precompiled/stdc++.h: Include <cuchar>.
* testsuite/17_intro/headers/c++200x/stdc++.cc: Include <uchar.h>.
* testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc:
Include <uchar.h>.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r227488
2015-09-04 12:13:34 +01:00
Jonathan Wakely
eb8bf686b7
Make std::experimental::not_fn SFINAE-friendly.
...
PR libstdc++/66998
* include/experimental/functional (_Not_fn): Add exception
specifications and non-deduced return types.
(not_fn): Add exception specification and wrap pointer-to-member.
* testsuite/experimental/functional/not_fn.cc: Test in SFINAE context
and test pointer-to-member.
From-SVN: r227448
2015-09-03 15:36:03 +01:00
Jonathan Wakely
500dc9a6c3
Add concept checks to std::next and std::prev.
...
PR libstdc++/62039
* include/bits/stl_iterator_base_funcs.h (next, prev): Add concept
checks.
* testsuite/24_iterators/operations/prev_neg.cc: New.
* testsuite/24_iterators/operations/next_neg.cc: New.
From-SVN: r227447
2015-09-03 15:35:43 +01:00
Sebastian Huber
37d13ae648
libstdc++: Run tests on RTEMS
...
libstdc++-v3/ChangeLog
* testsuite/18_support/pthread_guard.cc: Add *-*-rtems* target
selector to all lines which contain a *-*-cygwin target selector.
* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Likewise.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
* testsuite/21_strings/basic_string/pthread33394.cc: Likewise.
* 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/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/async/42819.cc: Likewise.
* testsuite/30_threads/async/49668.cc: Likewise.
* testsuite/30_threads/async/54297.cc: Likewise.
* testsuite/30_threads/async/any.cc: Likewise.
* testsuite/30_threads/async/async.cc: Likewise.
* testsuite/30_threads/async/launch.cc: Likewise.
* testsuite/30_threads/async/lwg2021.cc: Likewise.
* testsuite/30_threads/async/sync.cc: Likewise.
* testsuite/30_threads/call_once/39909.cc: Likewise.
* testsuite/30_threads/call_once/49668.cc: Likewise.
* testsuite/30_threads/call_once/60497.cc: Likewise.
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
* testsuite/30_threads/condition_variable/54185.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
* testsuite/30_threads/future/cons/move.cc: Likewise.
* testsuite/30_threads/future/members/45133.cc: Likewise.
* testsuite/30_threads/future/members/get.cc: Likewise.
* testsuite/30_threads/future/members/get2.cc: Likewise.
* testsuite/30_threads/future/members/share.cc: Likewise.
* testsuite/30_threads/future/members/valid.cc: Likewise.
* testsuite/30_threads/future/members/wait.cc: Likewise.
* testsuite/30_threads/future/members/wait_for.cc: Likewise.
* testsuite/30_threads/future/members/wait_until.cc: Likewise.
* testsuite/30_threads/lock/1.cc: Likewise.
* testsuite/30_threads/lock/2.cc: Likewise.
* testsuite/30_threads/lock/3.cc: Likewise.
* testsuite/30_threads/lock/4.cc: Likewise.
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
* testsuite/30_threads/packaged_task/49668.cc: Likewise.
* testsuite/30_threads/packaged_task/60564.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
Likewise.
* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
* testsuite/30_threads/promise/60966.cc: Likewise.
* testsuite/30_threads/promise/cons/1.cc: Likewise.
* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
* testsuite/30_threads/promise/cons/move.cc: Likewise.
* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
* testsuite/30_threads/promise/members/get_future.cc: Likewise.
* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value.cc: Likewise.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
* testsuite/30_threads/promise/members/swap.cc: Likewise.
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
* testsuite/30_threads/shared_future/members/get.cc: Likewise.
* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/this_thread/1.cc: Likewise.
* testsuite/30_threads/this_thread/2.cc: Likewise.
* testsuite/30_threads/this_thread/3.cc: Likewise.
* testsuite/30_threads/this_thread/4.cc: Likewise.
* testsuite/30_threads/thread/cons/1.cc: Likewise.
* testsuite/30_threads/thread/cons/2.cc: Likewise.
* testsuite/30_threads/thread/cons/3.cc: Likewise.
* testsuite/30_threads/thread/cons/4.cc: Likewise.
* testsuite/30_threads/thread/cons/49668.cc: Likewise.
* testsuite/30_threads/thread/cons/5.cc: Likewise.
* testsuite/30_threads/thread/cons/6.cc: Likewise.
* testsuite/30_threads/thread/cons/7.cc: Likewise.
* testsuite/30_threads/thread/cons/8.cc: Likewise.
* testsuite/30_threads/thread/cons/9.cc: Likewise.
* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
* testsuite/30_threads/thread/members/1.cc: Likewise.
* testsuite/30_threads/thread/members/2.cc: Likewise.
* testsuite/30_threads/thread/members/3.cc: Likewise.
* testsuite/30_threads/thread/members/4.cc: Likewise.
* testsuite/30_threads/thread/members/5.cc: Likewise.
* testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
* testsuite/30_threads/thread/swap/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
* testsuite/30_threads/try_lock/1.cc: Likewise.
* testsuite/30_threads/try_lock/2.cc: Likewise.
* testsuite/30_threads/try_lock/3.cc: Likewise.
* testsuite/30_threads/try_lock/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/1.cc: 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.
From-SVN: r227429
2015-09-03 05:45:33 +00:00
Tim Shen
cae4063cea
re PR libstdc++/67362 (std::regex("((.)", std::regex_constants::basic) throws)
...
PR libstdc++/67362
* include/bits/regex_scanner.tcc (_Scanner<>::_M_scan_normal):
Always returns ordinary char token if the char isn't
considered a special char.
* testsuite/28_regex/regression.cc: New test file for collecting
regression testcases from, typically, bugzilla.
From-SVN: r227289
2015-08-28 02:35:21 +00:00
Jonathan Wakely
e994d230f1
re PR libstdc++/67374 (std::cbegin can't call valarray range access functions)
...
PR libstdc++/67374
* include/bits/range_access.h (valarray, begin, end): Declare.
* testsuite/26_numerics/valarray/range_access.cc: Test const
overloads.
* testsuite/26_numerics/valarray/range_access2.cc: New.
From-SVN: r227274
2015-08-27 20:05:19 +01:00
Edward Smith-Rowland
33df19a736
Ensure std::generate_canonical doesn't return 1.
...
2015-08-26 Edward Smith-Rowland <3dw4rd@verizon.net>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/64351
PR libstdc++/63176
* include/bits/random.tcc (generate_canonical): Loop until we get a
result less than one.
* testsuite/26_numerics/random/uniform_real_distribution/operators/
64351.cc: New.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r227233
2015-08-26 22:27:09 +01:00
Jonathan Wakely
6bc41b268e
Only set std::enable_shared_from_this member once.
...
* include/bits/shared_ptr.h (__enable_shared_from_this_helper): Use
nullptr.
* include/bits/shared_ptr_base.h (weak_ptr::_M_assign): Don't assign
if ownership is already shared with a shared_ptr object.
(__enable_shared_from_this_helper): Use nullptr.
* testsuite/20_util/enable_shared_from_this/members/const.cc: New.
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: New.
* testsuite/20_util/enable_shared_from_this/requirements/
explicit_instantiation.cc: Instantiate with const and incomplete types.
From-SVN: r227232
2015-08-26 22:27:00 +01:00
François Dumont
630a286ab6
re PR libstdc++/60519 (Debug mode should check comparators for irreflexivity)
...
2015-08-24 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/60519
* include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
New enum entry.
* include/debug/functions.h (_Irreflexive_checker): New.
(__is_irreflexive, __is_irreflexive_pred): New.
* include/debug/macros.h
(__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
macros.
(__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
macros limited to post-C++11 mode.
* include/debug/debug.h
(__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
New macros, use latter.
(__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
Likewise.
* include/bits/stl_algo.h
(partial_sort_copy): Add irreflexive debug check.
(partial_sort_copy): Likewise.
(lower_bound): Likewise.
(upper_bound): Likewise.
(equal_range): Likewise.
(binary_search): Likewise.
(inplace_merge): Likewise.
(includes): Likewise.
(next_permutation): Likewise.
(prev_permutation): Likewise.
(is_sorted_until): Likewise.
(minmax_element): Likewise.
(partial_sort): Likewise.
(nth_element): Likewise.
(sort): Likewise.
(merge): Likewise.
(stable_sort): Likewise.
(set_union): Likewise.
(set_intersection): Likewise.
(set_difference): Likewise.
(set_symmetric_difference): Likewise.
(min_element): Likewise.
(max_element): Likewise.
* include/bits/stl_algobase.h
(lower_bound): Likewise.
(lexicographical_compare): Likewise.
* include/bits/stl_heap.h
(push_heap): Likewise.
(pop_heap): Likewise.
(make_heap): Likewise.
(sort_heap): Likewise.
(is_heap_until): Likewise.
* testsuite/25_algorithms/lexicographical_compare/debug/
irreflexive_neg.cc: New.
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
New.
From-SVN: r227189
2015-08-25 20:27:03 +00:00
François Dumont
25c65938c8
Revert my change to commit with PR reference again.
...
From-SVN: r227187
2015-08-25 20:22:47 +00:00
François Dumont
41e4e5edce
formatter.h (_Debug_msg_id::__msg_irreflexive_ordering): New enum entry.
...
2015-08-24 François Dumont <fdumont@gcc.gnu.org>
* include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
New enum entry.
* include/debug/functions.h (_Irreflexive_checker): New.
(__is_irreflexive, __is_irreflexive_pred): New.
* include/debug/macros.h
(__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
macros.
(__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
macros limited to post-C++11 mode.
* include/debug/debug.h
(__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
New macros, use latter.
(__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
Likewise.
* include/bits/stl_algo.h
(partial_sort_copy): Add irreflexive debug check.
(partial_sort_copy): Likewise.
(lower_bound): Likewise.
(upper_bound): Likewise.
(equal_range): Likewise.
(binary_search): Likewise.
(inplace_merge): Likewise.
(includes): Likewise.
(next_permutation): Likewise.
(prev_permutation): Likewise.
(is_sorted_until): Likewise.
(minmax_element): Likewise.
(partial_sort): Likewise.
(nth_element): Likewise.
(sort): Likewise.
(merge): Likewise.
(stable_sort): Likewise.
(set_union): Likewise.
(set_intersection): Likewise.
(set_difference): Likewise.
(set_symmetric_difference): Likewise.
(min_element): Likewise.
(max_element): Likewise.
* include/bits/stl_algobase.h
(lower_bound): Likewise.
(lexicographical_compare): Likewise.
* include/bits/stl_heap.h
(push_heap): Likewise.
(pop_heap): Likewise.
(make_heap): Likewise.
(sort_heap): Likewise.
(is_heap_until): Likewise.
* testsuite/25_algorithms/lexicographical_compare/debug/
irreflexive_neg.cc: New.
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
New.
From-SVN: r227147
2015-08-24 20:21:57 +00:00
Jonathan Wakely
4a88769c96
re PR libstdc++/65049 (Undefined behaviour with std::char_traits<char>)
...
PR libstdc++/65049
* include/bits/char_traits.h (char_traits<char>::compare,
char_traits<char>::find, char_traits<char>::move,
char_traits<char>::copy, char_traits<char>::assign): Check for zero
length.
(char_traits<wchar_t>::compare, char_traits<wchar_t>::find,
char_traits<wchar_t>::move, char_traits<wchar_t>::copy,
char_traits<wchar_t>::assign): Likewise.
(char_traits<char16_t>::move, char_traits<char16_t>::copy): Likewise.
(char_traits<char32_t>::move, char_traits<char32_t>::copy): Likewise.
* include/ext/pod_char_traits.h (char_traits<character<>>::move,
char_traits<character<>>::copy): Likewise.
* testsuite/21_strings/char_traits/requirements/char/65049.cc: New.
* testsuite/21_strings/char_traits/requirements/char16_t/65049.cc:
New.
* testsuite/21_strings/char_traits/requirements/char32_t/65049.cc:
New.
* testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc:
New.
From-SVN: r227127
2015-08-24 14:43:54 +01:00
Jonathan Wakely
3af7efb7d9
re PR libstdc++/67309 (Error compiling with -std=c++11 and -fsingle-precision-constant)
...
PR libstdc++/67309
* include/bits/random.tcc
(poisson_distribution::param_type::_M_initialize): Use max<double>.
(binomial_distribution::param_type::_M_initialize): Likewise.
* testsuite/17_intro/headers/c++200x/67309.cc: New.
* testsuite/17_intro/headers/c++200x/all_attributes.cc: Remove
redundant header.
From-SVN: r227126
2015-08-24 14:43:36 +01:00
Jonathan Wakely
4ba1fef27d
libstdc++/67294 Don't run timed mutex tests on Darwin
...
PR libstdc++/67294
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Do not run
on Darwin.
* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
From-SVN: r227043
2015-08-20 21:36:19 +01:00
Jonathan Wakely
89f0694859
any (__any_caster): Define at namespace scope so the name is visible to name lookup.
...
* include/experimental/any (__any_caster): Define at namespace scope
so the name is visible to name lookup.
* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
From-SVN: r227042
2015-08-20 21:19:58 +01:00
Jonathan Wakely
f641b2d6bb
re PR c++/67216 (false is still a null pointer constant)
...
PR c++/67216
* testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc:
Fix use of safe-bool idiom that isn't valid in C++11.
From-SVN: r226986
2015-08-18 19:04:48 +01:00
Jonathan Wakely
2548a4d6ba
any (any::operator=(const any&)): Move check for self-assignment.
...
* include/experimental/any (any::operator=(const any&)): Move check
for self-assignment.
(any::operator=(any&&)): Add check for self-assignment.
(any::operator=(_ValueType&&)): Constrain template argument.
(any::swap(any&)): Add check for self-swap.
* testsuite/experimental/any/assign/self.cc: Test move and swap.
* testsuite/experimental/any/misc/any_cast_neg.cc: Update dg-error.
From-SVN: r226894
2015-08-14 12:51:18 +01:00
Jonathan Wakely
357c9f7edc
array: Add feature-test macro.
...
* include/experimental/array: Add feature-test macro.
* testsuite/experimental/array/neg.cc: Update dg-error.
From-SVN: r226893
2015-08-14 12:51:05 +01:00
Ville Voutilainen
708768eb18
neg.s: Remove.
...
2015-08-13 Ville Voutilainen <ville.voutilainen@gmail.com>
* testsuite/experimental/array/neg.s: Remove.
* testsuite/experimental/array/neg.ii.gz: Remove.
From-SVN: r226866
2015-08-13 18:00:20 +03:00
Ville Voutilainen
9638eccd55
Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array.
...
2015-08-13 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement std::experimental::fundamentals_v2::make_array and
std::experimental::fundamentals_v2::to_array.
* include/Makefile.am: Add array.
* include/Makefile.in: Add array.
* include/experimental/array: New.
* testsuite/experimental/array/make_array.cc: Likewise.
* testsuite/experimental/array/neg.cc: Likewise.
* doc/html/manual/status.html: Mark make_array as Y.
* doc/xml/manual/status_cxx2017.xml: Likewise.
From-SVN: r226865
2015-08-13 17:55:46 +03:00
Jonathan Wakely
0072c9ac90
2.cc: New.
...
* testsuite/30_threads/mutex/unlock/2.cc: New.
* testsuite/30_threads/recursive_mutex/unlock/2.cc: New.
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: New.
* testsuite/30_threads/shared_mutex/unlock/1.cc: New.
* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: New.
* testsuite/30_threads/timed_mutex/unlock/2.cc: New.
From-SVN: r226863
2015-08-13 14:57:35 +01:00
Ville Voutilainen
b95170d380
Implement N4279, Improved insertion interface for unique-key maps.
...
2015-08-09 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement N4279, Improved insertion interface for unique-key maps.
* include/bits/stl_map.h (try_emplace, insert_or_assign): New.
* include/bits/stl_tree.h (_M_get_insert_unique_pos,
_M_get_insert_equal_pos, _M_get_insert_hint_unique_pos,
_M_get_insert_hint_equal_pos): Make public.
* include/bits/unordered_map.h (try_emplace, insert_or_assign): New.
* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
Likewise.
* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
Likewise.
* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
Likewise.
From-SVN: r226743
2015-08-09 01:57:13 +03:00
Ville Voutilainen
f334456903
Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228...
...
2015-08-08 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118)
and N4366 LWG 2228: Missing SFINAE rule in unique_ptr
templated assignment
* include/bits/unique_ptr.h
(__remove_cv, __is_derived_Tp): Remove.
(default_delete::default_delete(const default_delete<_Up[]>)):
Constrain with array convertibility.
(default_delete::operator(_Up*)): Turn into a template,
constrain with array convertibility.
(__safe_conversion_up): New, single object version.
(unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter
convertibility.
(unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
is_assignable as a constraint.
(__safe_conversion_up): Array version, renamed from __safe_conversion,
updated to implement N4089.
(__safe_conversion_raw): New.
(unique_ptr(_Up)): Turn into a template, constrain with array
convertibility.
(unique_ptr(_Up,
typename conditional<is_reference<deleter_type>::value,
deleter_type, const deleter_type&>::type)): Likewise.
(unique_ptr(_Up, typename
remove_reference<deleter_type>::type&&)): Likewise.
(unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise.
(operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
is_assignable as a constraint (array version).
(reset(_Up)): Turn into a template, constrain with array
convertibility.
(reset(nullptr_t)): New.
* testsuite/20_util/default_delete/48631_neg.cc: Adjust.
* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
* testsuite/20_util/unique_ptr/dr2228.cc: New.
* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust.
From-SVN: r226733
2015-08-08 14:07:34 +03:00
Nikolai Bozhenov
e1ed1bca36
constexpr.cc: Remove redundant -save-temps option.
...
2015-08-05 Nikolai Bozhenov <n.bozhenov@samsung.com>
* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
redundant -save-temps option.
* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
From-SVN: r226647
2015-08-05 21:57:03 +01:00
Jonathan Wakely
155bfacbbe
current_path.cc: Use canonical paths for comparisons.
...
* testsuite/experimental/filesystem/operations/current_path.cc: Use
canonical paths for comparisons.
From-SVN: r226402
2015-07-30 13:41:33 +01:00
Jonathan Wakely
2e3f48dc43
any (any::operator=(const any&)): Check for self-assignment.
...
* include/experimental/any (any::operator=(const any&)): Check for
self-assignment.
* testsuite/experimental/any/assign/self.cc: New.
* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
From-SVN: r226393
2015-07-30 11:00:39 +01:00
Jonathan Wakely
626b8d8a48
re PR libstdc++/66829 (FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc)
...
PR libstdc++/66829
* testsuite/lib/libstdc++.exp (v3-build_support): Compile
testsuite_shared.cc with -std=gnu++98.
From-SVN: r226354
2015-07-29 15:56:11 +01:00
Jonathan Wakely
ef20ab5e01
* testsuite/24_iterators/container_access.cc: New.
...
From-SVN: r226349
2015-07-29 13:55:58 +01:00
Ville Voutilainen
1fa9ba224e
re PR libstdc++/60970 (Support std::hash with enum types (LWG 2148))
...
2015-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/60970
* include/bits/functional_hash.h (__hash_enum): New.
(hash): Derive from __hash_enum.
* testsuite/20_util/hash/60970.cc: New.
From-SVN: r226347
2015-07-29 13:41:23 +01:00
Tim Shen
f9ce3c1639
re PR libstdc++/67015 ("^[a-z0-9][a-z0-9-]*$", std::regex::extended is miscompiled)
...
PR libstdc++/67015
* include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
_BracketMatcher<>::_M_add_collating_element): Change signature
to make checking the and of bracket expression easier.
* include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
Treat '-' as a valid literal if it's at the end of bracket expression.
* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
New testcases.
From-SVN: r226336
2015-07-29 03:45:35 +00:00
Michael Haubenwallner
74b7ec8c45
libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS
...
2015-07-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
* fragment.am (AM_CPPFLAGS): Add CPPFLAGS.
* Makefile.in: Regenerate.
* doc/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* python/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* src/c++11/Makefile.in: Regenerate.
* src/c++98/Makefile.in: Regenerate.
* src/filesystem/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
From-SVN: r226138
2015-07-24 07:05:19 +00:00
François Dumont
5bc1c07c4a
stl_algobase.h (__miter_base): Move...
...
2015-07-16 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_algobase.h (__miter_base): Move...
* include/bits/cpp_type_traits.h: ...here.
* include/debug/functions.h (__foreign_iterator_aux): Use latter.
* testsuite/23_containers/vector/debug/insert7_neg.cc: New.
From-SVN: r225902
2015-07-16 19:17:26 +00:00
Jonathan Wakely
795038b722
re PR libstdc++/66855 (codecvt wrong endianness in UTF-16 conversions)
...
PR libstdc++/66855
* src/c++11/codecvt.cc (__codecvt_utf8_utf16_base::do_in): Override
endianness bit in mode.
* testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: New.
From-SVN: r225748
2015-07-13 21:07:48 +01:00
Jonathan Wakely
c5d9ec5670
c++config (_GLIBCXX_NOEXCEPT_IF): Define.
...
* include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define.
* include/bits/forward_list.h (forward_list::swap): Make noexcept
unconditional.
* include/bits/hashtable.h (_Hashtable::swap): Do not use
_S_nothrow_swap().
* include/bits/stl_bvector.h (vector<bool>::swap): Make noexcept
unconditional.
* include/bits/stl_deque.h (deque::swap): Likewise.
(swap(deque&, deque&)): Use _GLIBCXX_NOEXCEPT_IF.
* include/bits/stl_list.h (list::swap): Make noexcept unconditional.
(swap(list&, list&)): Use _GLIBCXX_NOEXCEPT_IF.
* include/bits/stl_map.h (map::swap, swap(map&, map&)): Use
_GLIBCXX_NOEXCEPT_IF, do not depend on _S_nothrow_swap.
* include/bits/stl_multimap.h (multimap::swap,
swap(multimap&, multimap&)): Likewise.
* include/bits/stl_multiset.h (multiset::swap,
swap(multiset&, multiset&)): Likewise.
* include/bits/stl_set.h (set::swap, swap(set&, set&)): Likewise.
* include/bits/stl_tree.h (_Rb_tree::swap,
swap(_Rb_tree&, _Rb_tree&)): Likewise.
* include/bits/stl_vector.h (vector::swap): Make noexcept
unconditional.
(swap(vector&, vector&)): Use _GLIBCXX_NOEXCEPT_IF.
* include/debug/deque (deque::swap, swap): Likewise.
* include/debug/forward_list (swap): Add noexcept.
* include/debug/list (list::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
* include/debug/map.h (map::swap, swap): Likewise.
* include/debug/multimap.h (multimap::swap, swap): Likewise.
* include/debug/multiset.h (multiset::Swap, swap): Likewise.
* include/debug/set.h (set::swap, swap): Likewise.
* include/debug/unordered_map (unordered_map::swap,
unordered_multimap::swap, swap): Likewise.
* include/debug/unordered_set (unordered_set::swap,
unordered_multiset::swap, swap): Likewise.
* include/debug/vector (vector::swap, swap): Likewise.
* include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()):
Remove.
* include/profile/deque (deque::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
* include/profile/forward_list (swap): Add noexcept.
* include/profile/list (list::swap, swap) : Use _GLIBCXX_NOEXCEPT_IF.
* include/profile/map.h (map::swap, swap): Likewise.
* include/profile/multimap.h (multimap::swap, swap): Likewise.
* include/profile/multiset.h (multiset::swap, swap): Likewise.
* include/profile/set.h (set::swap, swap): Likewise.
* include/profile/unordered_map (swap): Likewise.
* include/profile/unordered_set (swap): Likewise.
* include/profile/vector (vector::swap, swap): Likewise. Remove
overloads for swapping rvalues.
* testsuite/23_containers/deque/allocator/noexcept.cc: Update tests
for noexcept on swap.
* testsuite/23_containers/forward_list/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/list/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_set/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
* testsuite/23_containers/vector/bool/allocator/noexcept.cc: Likewise.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line
number.
From-SVN: r225744
2015-07-13 18:15:48 +01:00
François Dumont
291e91daa7
hashtable.h (_Hashtable<>::__rehash_policy): Do not rehash container.
...
2015-07-05 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::__rehash_policy): Do not
rehash container.
* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
Adapt.
From-SVN: r225436
2015-07-05 21:16:07 +00:00
Ville Voutilainen
e37e6813d5
Implement std::experimental::fundamentals_v2::propagate_const.
...
2015-07-03 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement std::experimental::fundamentals_v2::propagate_const.
* include/Makefile.am: Add propagate_const.
* include/Makefile.in: Regenerate.
* include/experimental/propagate_const: New.
* testsuite/experimental/propagate_const/assignment/copy.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Likewise.
* testsuite/experimental/propagate_const/cons/copy.cc: Likewise.
* testsuite/experimental/propagate_const/cons/default.cc: Likewise.
* testsuite/experimental/propagate_const/cons/move.cc: Likewise.
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
* testsuite/experimental/propagate_const/hash/1.cc: Likewise.
* testsuite/experimental/propagate_const/observers/1.cc: Likewise.
* testsuite/experimental/propagate_const/relops/1.cc: Likewise.
* testsuite/experimental/propagate_const/requirements1.cc: Likewise.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
* testsuite/experimental/propagate_const/swap/1.cc: Likewise.
* testsuite/experimental/propagate_const/typedefs.cc: Likewise.
From-SVN: r225379
2015-07-03 15:08:37 +01:00
Jonathan Wakely
7946683835
alloc_traits.h (__alloctr_rebind): Remove.
...
* include/bits/alloc_traits.h (__alloctr_rebind): Remove.
(__allocator_traits_base): New base class.
(__alloc_rebind): Reimplement in terms of detection idiom.
(allocator_traits): Derive from __allocator_traits_base. Reimplement
nested types in terms of detection idiom. Simplify SFINAE constraints
on overloaded static member functions.
* include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead
of __alloctr_rebind.
* testsuite/20_util/scoped_allocator/propagation.cc: Define rebind.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.
From-SVN: r225244
2015-07-01 13:24:09 +01:00