diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-07-31 17:51:00 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-07-31 17:51:00 +0100 |
commit | 8e2592a88821511aa45c3325246f3b08a88fa063 (patch) | |
tree | f7968e759580eb92e3a1d1c4c9ceca6e39ce3938 | |
parent | 95edead9aab7a70636f87ea041f05469dc41d9a9 (diff) | |
download | gcc-8e2592a88821511aa45c3325246f3b08a88fa063.zip gcc-8e2592a88821511aa45c3325246f3b08a88fa063.tar.gz gcc-8e2592a88821511aa45c3325246f3b08a88fa063.tar.bz2 |
libstdc++: Adjust tests that give different results in C++20
libstdc++-v3/ChangeLog:
* testsuite/20_util/is_aggregate/value.cc: Adjust for changes to
definition of aggregates in C++20.
* testsuite/20_util/optional/requirements.cc: Adjust for
defaulted comparisons in C++20.
-rw-r--r-- | libstdc++-v3/testsuite/20_util/is_aggregate/value.cc | 15 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/optional/requirements.cc | 3 |
2 files changed, 15 insertions, 3 deletions
diff --git a/libstdc++-v3/testsuite/20_util/is_aggregate/value.cc b/libstdc++-v3/testsuite/20_util/is_aggregate/value.cc index bef9dc4c..085eb55 100644 --- a/libstdc++-v3/testsuite/20_util/is_aggregate/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_aggregate/value.cc @@ -46,8 +46,6 @@ void test01() static_assert(test_category<is_aggregate, SLType>(true), ""); static_assert(test_category<is_aggregate, - NoexceptMoveAssignClass>(true), ""); - static_assert(test_category<is_aggregate, unsigned[3]>(true), ""); static_assert(test_category<is_aggregate, unsigned[3][2]>(true), ""); @@ -63,8 +61,13 @@ void test01() EnumType[]>(true), ""); static_assert(test_category<is_aggregate, EnumType[][2]>(true), ""); - pos<ClassType, UnionType, SLType, NoexceptMoveAssignClass, + pos<ClassType, UnionType, SLType, unsigned[3], unsigned[3][2], unsigned[], unsigned[][3]>(); +#if __cplusplus == 201703L + static_assert(test_category<is_aggregate, + NoexceptMoveAssignClass>(true), ""); + pos<NoexceptMoveAssignClass>(); +#endif // Negative tests. static_assert(test_category<is_aggregate, @@ -93,4 +96,10 @@ void test01() void>(false), ""); neg<AbstractClass, PolymorphicClass, ExplicitClass, char, unsigned, bool, float, double, void>(); +#if __cplusplus > 201703L + // In C++20 aggregates cannot have user-declared constructors. + static_assert(test_category<is_aggregate, + NoexceptMoveAssignClass>(false), ""); + neg<NoexceptMoveAssignClass>(); +#endif } diff --git a/libstdc++-v3/testsuite/20_util/optional/requirements.cc b/libstdc++-v3/testsuite/20_util/optional/requirements.cc index 560e6f7..d8d52ab 100644 --- a/libstdc++-v3/testsuite/20_util/optional/requirements.cc +++ b/libstdc++-v3/testsuite/20_util/optional/requirements.cc @@ -312,7 +312,10 @@ struct JustEq {}; bool operator==(const JustEq&, const JustEq&); static_assert(is_eq_comparable<optional<JustEq>>::value, ""); +#if __cplusplus == 201703L +// In C++20 operator!= can be synthesized from operator== static_assert(!is_neq_comparable<optional<JustEq>>::value, ""); +#endif static_assert(!is_lt_comparable<optional<JustEq>>::value, ""); static_assert(!is_gt_comparable<optional<JustEq>>::value, ""); static_assert(!is_le_comparable<optional<JustEq>>::value, ""); |