aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-03-28 21:52:13 +0000
committerJonathan Wakely <jwakely@redhat.com>2020-03-28 21:52:13 +0000
commitf6b2b79040dea3cac4eb77684c4dbe12927f0b9c (patch)
tree652a1ddbceb4d178843056f892fcfc2e5c5bdd12
parent42cda3ba45fca30e73e1c35d8e19b5ec8af24d98 (diff)
downloadgcc-f6b2b79040dea3cac4eb77684c4dbe12927f0b9c.zip
gcc-f6b2b79040dea3cac4eb77684c4dbe12927f0b9c.tar.gz
gcc-f6b2b79040dea3cac4eb77684c4dbe12927f0b9c.tar.bz2
libstdc++: Fix two tests that fail in C++20 mode
* testsuite/20_util/is_constructible/value-2.cc: Fix test to account for changes due to parenthesized aggregate-initialization in C++20. * testsuite/20_util/time_point/cons/81468.cc: Fix test to not clash with std::chrono::sys_time in C++20.
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc8
3 files changed, 14 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a016f64..912bab2 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,10 @@
2020-03-28 Jonathan Wakely <jwakely@redhat.com>
+ * testsuite/20_util/is_constructible/value-2.cc: Fix test to account
+ for changes due to parenthesized aggregate-initialization in C++20.
+ * testsuite/20_util/time_point/cons/81468.cc: Fix test to not clash
+ with std::chrono::sys_time in C++20.
+
* include/bits/stl_iterator.h (reverse_iterator): Use requires-clause
to constrain C++20 versions of comparison operators. Fix backwards
logic of relational operators.
diff --git a/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc b/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
index c73cab8..c54b749 100644
--- a/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
+++ b/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
@@ -107,7 +107,9 @@ static_assert(!std::is_constructible<Abstract, std::nullptr_t>::value, "Error");
static_assert(!std::is_constructible<std::nullptr_t, Abstract>::value, "Error");
static_assert(!std::is_constructible<Abstract, int[]>::value, "Error");
static_assert(std::is_constructible<B, D>::value, "Error");
+#ifndef __cpp_aggregate_paren_init
static_assert(!std::is_constructible<D, B>::value, "Error");
+#endif
static_assert(!std::is_constructible<int[], int[1]>::value, "Error");
static_assert(!std::is_constructible<int[1], int[]>::value, "Error");
static_assert(!std::is_constructible<int[], Empty>::value, "Error");
@@ -416,7 +418,9 @@ static_assert(!std::is_constructible<int(&)[1], int(&)[2]>::value, "Error");
static_assert(!std::is_constructible<int(&)[1], int&>::value, "Error");
static_assert(!std::is_constructible<int&, int(&)[1]>::value, "Error");
+#ifndef __cpp_aggregate_paren_init
static_assert(!std::is_constructible<U, int>::value, "Error");
+#endif
static_assert(!std::is_constructible<U, Empty>::value, "Error");
static_assert(!std::is_constructible<void(), void()>::value, "Error");
diff --git a/libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc b/libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
index 6f3e920..99ded47 100644
--- a/libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
+++ b/libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
@@ -20,11 +20,13 @@
#include <chrono>
#include <type_traits>
-using namespace std;
-using namespace std::chrono;
+using std::is_constructible;
+using std::chrono::seconds;
+using std::chrono::milliseconds;
template <class Duration>
- using sys_time = time_point<system_clock, Duration>;
+ using sys_time
+ = std::chrono::time_point<std::chrono::system_clock, Duration>;
static_assert(is_constructible<sys_time<milliseconds>, sys_time<seconds>>{},
"Can construct time_point from one with lower precision duration");