From f6b2b79040dea3cac4eb77684c4dbe12927f0b9c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 28 Mar 2020 21:52:13 +0000 Subject: [PATCH] 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. --- libstdc++-v3/ChangeLog | 5 +++++ .../testsuite/20_util/is_constructible/value-2.cc | 4 ++++ libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc | 8 +++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a016f640df3..912bab28691 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,10 @@ 2020-03-28 Jonathan Wakely + * 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 c73cab8c02b..c54b749c046 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::value, "Error"); static_assert(!std::is_constructible::value, "Error"); static_assert(!std::is_constructible::value, "Error"); static_assert(std::is_constructible::value, "Error"); +#ifndef __cpp_aggregate_paren_init static_assert(!std::is_constructible::value, "Error"); +#endif static_assert(!std::is_constructible::value, "Error"); static_assert(!std::is_constructible::value, "Error"); static_assert(!std::is_constructible::value, "Error"); @@ -416,7 +418,9 @@ static_assert(!std::is_constructible::value, "Error"); static_assert(!std::is_constructible::value, "Error"); static_assert(!std::is_constructible::value, "Error"); +#ifndef __cpp_aggregate_paren_init static_assert(!std::is_constructible::value, "Error"); +#endif static_assert(!std::is_constructible::value, "Error"); static_assert(!std::is_constructible::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 6f3e920d789..99ded478d3f 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 #include -using namespace std; -using namespace std::chrono; +using std::is_constructible; +using std::chrono::seconds; +using std::chrono::milliseconds; template - using sys_time = time_point; + using sys_time + = std::chrono::time_point; static_assert(is_constructible, sys_time>{}, "Can construct time_point from one with lower precision duration"); -- 2.30.2