From 67005ea425022e13680251853dcd7664b9e28c0d Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Thu, 22 Sep 2022 15:47:01 +0000 Subject: [PATCH 01/10] Fix error about ambiguous symbol. gcc complains that there are already functions named `read` and `write` defined. Where do you ask. I have no idea and rather than spending ages searching for them rename the two structs --- .upstream-tests/test/heterogeneous/pair.pass.cpp | 12 ++++++------ .upstream-tests/test/heterogeneous/tuple.pass.cpp | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.upstream-tests/test/heterogeneous/pair.pass.cpp b/.upstream-tests/test/heterogeneous/pair.pass.cpp index c8f3b581e1..2b9bdb516d 100644 --- a/.upstream-tests/test/heterogeneous/pair.pass.cpp +++ b/.upstream-tests/test/heterogeneous/pair.pass.cpp @@ -23,7 +23,7 @@ struct pod { using pair_t = cuda::std::pair; template -struct write +struct Write { using async = cuda::std::false_type; @@ -37,7 +37,7 @@ struct write }; template -struct read +struct Read { using async = cuda::std::false_type; @@ -51,10 +51,10 @@ struct read }; using w_r_w_r = performer_list< - write<10>, - read<10>, - write<30>, - read<30> + Write<10>, + Read<10>, + Write<30>, + Read<30> >; void kernel_invoker() diff --git a/.upstream-tests/test/heterogeneous/tuple.pass.cpp b/.upstream-tests/test/heterogeneous/tuple.pass.cpp index ff5c693812..1ae9e7cf20 100644 --- a/.upstream-tests/test/heterogeneous/tuple.pass.cpp +++ b/.upstream-tests/test/heterogeneous/tuple.pass.cpp @@ -25,7 +25,7 @@ struct pod { using tuple_t = cuda::std::tuple; template -struct write +struct Write { using async = cuda::std::false_type; @@ -40,7 +40,7 @@ struct write }; template -struct read +struct Read { using async = cuda::std::false_type; @@ -55,10 +55,10 @@ struct read }; using w_r_w_r = performer_list< - write<10>, - read<10>, - write<30>, - read<30> + Write<10>, + Read<10>, + Write<30>, + Read<30> >; void kernel_invoker() From cf1770b67410ea78e0224c49912b383e7392342a Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Thu, 22 Sep 2022 15:47:32 +0000 Subject: [PATCH 02/10] Enable implicit deduction guide test for gcc-12 It seems their implementation is finally mature enough to pass the test --- .../utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.upstream-tests/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp b/.upstream-tests/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp index 0276b8ebc9..faf48e429b 100644 --- a/.upstream-tests/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp +++ b/.upstream-tests/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp @@ -15,7 +15,7 @@ // GCC's implementation of class template deduction is still immature and runs // into issues with libc++. However GCC accepts this code when compiling // against libstdc++. -// XFAIL: gcc +// XFAIL: gcc-4.8, gcc-5, gcc-6, gcc-7, gcc-8, gcc-9, gcc-10, gcc-11 // Currently broken with Clang + NVCC. // XFAIL: clang-6, clang-7 From 32f1c185e1ea5529553f3bbd96588feda4f0b507 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Thu, 22 Sep 2022 17:09:16 +0000 Subject: [PATCH 03/10] There is no filesystem on the device --- .../time/time.clock/time.clock.file/consistency.pass.cpp | 2 ++ .../time/time.clock/time.clock.file/file_time.pass.cpp | 1 + .../time/time.clock/time.clock.file/rep_signed.pass.cpp | 1 + 3 files changed, 4 insertions(+) diff --git a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp index cc639f38c8..6703f93121 100644 --- a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// // // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// XFAIL: dylib-has-no-filesystem // Due to C++17 inline variables ASAN flags this test as containing an ODR // violation because Clock::is_steady is defined in both the dylib and this TU. @@ -21,6 +22,7 @@ #include template +__host__ __device__ void test(const T &) {} int main(int, char**) diff --git a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp index 6e892808eb..039aceecef 100644 --- a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp @@ -17,6 +17,7 @@ #include "test_macros.h" template +__host__ __device__ void test() { ASSERT_SAME_TYPE(cuda::std::chrono::file_time, cuda::std::chrono::time_point); } diff --git a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp index ada948796f..b5766c4698 100644 --- a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// XFAIL: dylib-has-no-filesystem // From baa529c962957a06083c9af760e9e8586fb55de9 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Sep 2022 09:14:18 +0000 Subject: [PATCH 04/10] Ignore warning about always true comparison --- .../test/std/iterators/iterator.container/ssize.pass.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.upstream-tests/test/std/iterators/iterator.container/ssize.pass.cpp b/.upstream-tests/test/std/iterators/iterator.container/ssize.pass.cpp index e48f3c5fad..4d558251c2 100644 --- a/.upstream-tests/test/std/iterators/iterator.container/ssize.pass.cpp +++ b/.upstream-tests/test/std/iterators/iterator.container/ssize.pass.cpp @@ -27,6 +27,10 @@ #include #endif +#if defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wtype-limits" +#endif + #include "test_macros.h" struct short_container { From d53eb85267c3de85b1a2522defc3f95078dd4571 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Sep 2022 09:35:59 +0000 Subject: [PATCH 05/10] Suppress warnings about deprecated volatile function parameters --- .../test/std/utilities/meta/meta.rel/is_convertible.pass.cpp | 1 + .../meta/meta.trans/meta.trans.other/result_of11.pass.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.upstream-tests/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp b/.upstream-tests/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp index e90d52d96c..2240544994 100644 --- a/.upstream-tests/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp +++ b/.upstream-tests/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp @@ -9,6 +9,7 @@ // type_traits // is_convertible +#pragma nv_diag_suppress 3013 // a volatile function parameter is deprecated #include #include "test_macros.h" diff --git a/.upstream-tests/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp b/.upstream-tests/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp index a971f8565d..ffcbca0314 100644 --- a/.upstream-tests/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp +++ b/.upstream-tests/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp @@ -15,6 +15,8 @@ // // result_of +#pragma nv_diag_suppress 3013 // a volatile function parameter is deprecated + #include // #include // #include From da8e981fab6e389b87af764e00937c96630c0222 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Sep 2022 09:36:18 +0000 Subject: [PATCH 06/10] We do not support certain parts of chrono, so disable those if appropriate --- .../time.cal.day/time.cal.day.nonmembers/literals.pass.cpp | 5 +++-- .../time.cal.year/time.cal.year.nonmembers/literals.pass.cpp | 2 ++ .../time.clock/time.clock.system/local_time.types.pass.cpp | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/literals.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/literals.pass.cpp index 5eb0c4acd6..3b2dbbd980 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/literals.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/literals.pass.cpp @@ -23,6 +23,7 @@ int main(int, char**) { +#ifndef _LIBCUDACXX_HAS_NO_CXX20_CHRONO_LITERALS { using namespace cuda::std::chrono; ASSERT_NOEXCEPT( 4d); @@ -31,7 +32,7 @@ int main(int, char**) static_assert( 7d == day(7), ""); day d1 = 4d; assert (d1 == day(4)); -} + } { using namespace cuda::std::literals; @@ -43,7 +44,7 @@ int main(int, char**) cuda::std::chrono::day d1 = 4d; assert (d1 == cuda::std::chrono::day(4)); } - +#endif // !_LIBCUDACXX_HAS_NO_CXX20_CHRONO_LITERALS return 0; } diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/literals.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/literals.pass.cpp index 38dc03b32c..dfd35c8063 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/literals.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/literals.pass.cpp @@ -23,6 +23,7 @@ int main(int, char**) { +#ifndef _LIBCUDACXX_HAS_NO_CXX20_CHRONO_LITERALS { using namespace cuda::std::chrono; ASSERT_NOEXCEPT(4y); @@ -41,6 +42,7 @@ int main(int, char**) cuda::std::chrono::year y1 = 2020y; assert (y1 == cuda::std::chrono::year(2020)); } +#endif // !_LIBCUDACXX_HAS_NO_CXX20_CHRONO_LITERALS return 0; } diff --git a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.system/local_time.types.pass.cpp b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.system/local_time.types.pass.cpp index 2f28c510a6..db4a2e3131 100644 --- a/.upstream-tests/test/std/utilities/time/time.clock/time.clock.system/local_time.types.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.clock/time.clock.system/local_time.types.pass.cpp @@ -28,6 +28,7 @@ int main(int, char**) { +#ifndef __cuda_std__ using local_t = cuda::std::chrono::local_t; using year = cuda::std::chrono::year; @@ -61,6 +62,7 @@ int main(int, char**) ASSERT_SAME_TYPE(decltype(s0.time_since_epoch()), seconds); assert( s0.time_since_epoch().count() == 0); assert( s1.time_since_epoch().count() == 946684800L); +#endif // __cuda_std__ return 0; } From 869a12f4b56f3137184c5852da3abce82a4340b8 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Sep 2022 09:40:46 +0000 Subject: [PATCH 07/10] We only support atomics after sm60 --- .../test/std/atomics/atomics.order/memory_order_new.pass.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.upstream-tests/test/std/atomics/atomics.order/memory_order_new.pass.cpp b/.upstream-tests/test/std/atomics/atomics.order/memory_order_new.pass.cpp index 0c6aa67aab..f36e351759 100644 --- a/.upstream-tests/test/std/atomics/atomics.order/memory_order_new.pass.cpp +++ b/.upstream-tests/test/std/atomics/atomics.order/memory_order_new.pass.cpp @@ -6,7 +6,8 @@ // //===----------------------------------------------------------------------===// // -// UNSUPPORTED: libcpp-has-no-threads, c++98, c++03, c++11, c++14, c++17 +// UNSUPPORTED: libcpp-has-no-threads, pre-sm-60 +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 #include From 5d7449c151e2aa7a3d932e922f686efa9b3c1406 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Sep 2022 10:06:51 +0000 Subject: [PATCH 08/10] gcc has some issues in C++20 mode, so disable those tests --- .../meta.unary/meta.unary.prop/is_constructible.pass.cpp | 6 ++++++ .../meta.unary.prop/is_copy_constructible.pass.cpp | 2 ++ .../meta.unary.prop/is_move_constructible.pass.cpp | 2 ++ 3 files changed, 10 insertions(+) diff --git a/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp b/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp index b1cef19538..6f7ab54435 100644 --- a/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp +++ b/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp @@ -260,15 +260,21 @@ int main(int, char**) test_is_constructible(); test_is_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_constructible(); +#endif test_is_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_constructible(); test_is_not_constructible(); +#endif test_is_constructible(); test_is_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_constructible(); test_is_not_constructible(); +#endif // test that T must also be destructible test_is_constructible(); diff --git a/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp b/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp index 33b44830eb..cfec4d6a22 100644 --- a/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp +++ b/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp @@ -91,8 +91,10 @@ int main(int, char**) test_is_copy_constructible(); test_is_copy_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_copy_constructible(); test_is_not_copy_constructible(); +#endif test_is_not_copy_constructible(); test_is_not_copy_constructible(); test_is_not_copy_constructible(); diff --git a/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp b/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp index 4b5451bae9..9c1809e795 100644 --- a/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp +++ b/.upstream-tests/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp @@ -72,8 +72,10 @@ struct B int main(int, char**) { +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_move_constructible(); test_is_not_move_constructible(); +#endif test_is_not_move_constructible(); test_is_not_move_constructible(); From 2f3145ce228b43b55d14781295b7e1dada01d1df Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Sep 2022 11:16:03 +0000 Subject: [PATCH 09/10] We currently do not support the `` header So mark those tests as XFAIL in case we ever implement it --- .../cmp/cmp.common/common_comparison_category.pass.cpp | 2 ++ .../std/language.support/cmp/cmp.partialord/partialord.pass.cpp | 2 ++ .../std/language.support/cmp/cmp.strongeq/cmp.strongeq.pass.cpp | 2 ++ .../std/language.support/cmp/cmp.strongord/strongord.pass.cpp | 2 ++ .../std/language.support/cmp/cmp.weakeq/cmp.weakeq.pass.cpp | 2 ++ .../test/std/language.support/cmp/cmp.weakord/weakord.pass.cpp | 2 ++ 6 files changed, 12 insertions(+) diff --git a/libcxx/test/std/language.support/cmp/cmp.common/common_comparison_category.pass.cpp b/libcxx/test/std/language.support/cmp/cmp.common/common_comparison_category.pass.cpp index 218291b6b4..85d813b89d 100644 --- a/libcxx/test/std/language.support/cmp/cmp.common/common_comparison_category.pass.cpp +++ b/libcxx/test/std/language.support/cmp/cmp.common/common_comparison_category.pass.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// NOTE: we currently do not support c++20 +// XFAIL: c++20 // diff --git a/libcxx/test/std/language.support/cmp/cmp.partialord/partialord.pass.cpp b/libcxx/test/std/language.support/cmp/cmp.partialord/partialord.pass.cpp index f2e673db69..c380574945 100644 --- a/libcxx/test/std/language.support/cmp/cmp.partialord/partialord.pass.cpp +++ b/libcxx/test/std/language.support/cmp/cmp.partialord/partialord.pass.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// NOTE: we currently do not support c++20 +// XFAIL: c++20 // diff --git a/libcxx/test/std/language.support/cmp/cmp.strongeq/cmp.strongeq.pass.cpp b/libcxx/test/std/language.support/cmp/cmp.strongeq/cmp.strongeq.pass.cpp index a5af910a5e..65502ef399 100644 --- a/libcxx/test/std/language.support/cmp/cmp.strongeq/cmp.strongeq.pass.cpp +++ b/libcxx/test/std/language.support/cmp/cmp.strongeq/cmp.strongeq.pass.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// NOTE: we currently do not support c++20 +// XFAIL: c++20 // diff --git a/libcxx/test/std/language.support/cmp/cmp.strongord/strongord.pass.cpp b/libcxx/test/std/language.support/cmp/cmp.strongord/strongord.pass.cpp index a31fd34d4f..7888253b02 100644 --- a/libcxx/test/std/language.support/cmp/cmp.strongord/strongord.pass.cpp +++ b/libcxx/test/std/language.support/cmp/cmp.strongord/strongord.pass.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// NOTE: we currently do not support c++20 +// XFAIL: c++20 // diff --git a/libcxx/test/std/language.support/cmp/cmp.weakeq/cmp.weakeq.pass.cpp b/libcxx/test/std/language.support/cmp/cmp.weakeq/cmp.weakeq.pass.cpp index 367aac6beb..6799a48352 100644 --- a/libcxx/test/std/language.support/cmp/cmp.weakeq/cmp.weakeq.pass.cpp +++ b/libcxx/test/std/language.support/cmp/cmp.weakeq/cmp.weakeq.pass.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// NOTE: we currently do not support c++20 +// XFAIL: c++20 // diff --git a/libcxx/test/std/language.support/cmp/cmp.weakord/weakord.pass.cpp b/libcxx/test/std/language.support/cmp/cmp.weakord/weakord.pass.cpp index ada8d240b6..a188a68c71 100644 --- a/libcxx/test/std/language.support/cmp/cmp.weakord/weakord.pass.cpp +++ b/libcxx/test/std/language.support/cmp/cmp.weakord/weakord.pass.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// NOTE: we currently do not support c++20 +// XFAIL: c++20 // From 4caa63b2f20268b197afaf580dc28f5a551804f9 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Sep 2022 11:27:41 +0000 Subject: [PATCH 10/10] Also port the test changes to libcxx tests --- .../std/atomics/atomics.order/memory_order_new.pass.cpp | 3 ++- libcxx/test/std/iterators/iterator.container/ssize.pass.cpp | 3 +++ .../meta.unary/meta.unary.prop/is_constructible.pass.cpp | 6 ++++++ .../meta.unary.prop/is_copy_constructible.pass.cpp | 2 ++ .../meta.unary.prop/is_move_constructible.pass.cpp | 2 ++ .../time/time.clock/time.clock.file/consistency.pass.cpp | 1 + .../time/time.clock/time.clock.file/file_time.pass.cpp | 1 + .../time/time.clock/time.clock.file/rep_signed.pass.cpp | 1 + .../pairs/pairs.pair/implicit_deduction_guides.pass.cpp | 2 +- 9 files changed, 19 insertions(+), 2 deletions(-) diff --git a/libcxx/test/std/atomics/atomics.order/memory_order_new.pass.cpp b/libcxx/test/std/atomics/atomics.order/memory_order_new.pass.cpp index 771803a428..7d7eb186f9 100644 --- a/libcxx/test/std/atomics/atomics.order/memory_order_new.pass.cpp +++ b/libcxx/test/std/atomics/atomics.order/memory_order_new.pass.cpp @@ -6,7 +6,8 @@ // //===----------------------------------------------------------------------===// // -// UNSUPPORTED: libcpp-has-no-threads, c++98, c++03, c++11, c++14, c++17 +// UNSUPPORTED: libcpp-has-no-threads, pre-sm-60 +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 #include diff --git a/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp b/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp index c34614dd0d..d80b8fece6 100644 --- a/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp +++ b/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp @@ -23,6 +23,9 @@ #include "test_macros.h" +#if defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wtype-limits" +#endif struct short_container { uint16_t size() const { return 60000; } // not noexcept diff --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp index 4eceee6770..bdb29cece1 100644 --- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp @@ -210,15 +210,21 @@ int main(int, char**) test_is_constructible(); test_is_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_constructible(); +#endif test_is_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_constructible(); test_is_not_constructible(); +#endif test_is_constructible(); test_is_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_constructible(); test_is_not_constructible(); +#endif // test that T must also be destructible test_is_constructible(); diff --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp index f64c40e862..312c2843f8 100644 --- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp @@ -83,8 +83,10 @@ int main(int, char**) test_is_copy_constructible(); test_is_copy_constructible(); +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_copy_constructible(); test_is_not_copy_constructible(); +#endif test_is_not_copy_constructible(); test_is_not_copy_constructible(); test_is_not_copy_constructible(); diff --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp index 2ebafb102b..01376059a6 100644 --- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp @@ -66,8 +66,10 @@ struct B int main(int, char**) { +#if !defined(TEST_COMPILER_GCC) || TEST_STD_VER < 20 test_is_not_move_constructible(); test_is_not_move_constructible(); +#endif test_is_not_move_constructible(); test_is_not_move_constructible(); diff --git a/libcxx/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp b/libcxx/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp index 34a4f60e2a..89baaea78c 100644 --- a/libcxx/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp +++ b/libcxx/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// // // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// XFAIL: dylib-has-no-filesystem // Due to C++17 inline variables ASAN flags this test as containing an ODR // violation because Clock::is_steady is defined in both the dylib and this TU. diff --git a/libcxx/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp b/libcxx/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp index 61d92381fc..07c5aa66ea 100644 --- a/libcxx/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp +++ b/libcxx/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// XFAIL: dylib-has-no-filesystem // diff --git a/libcxx/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp b/libcxx/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp index bed859a142..7d6bcbb181 100644 --- a/libcxx/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp +++ b/libcxx/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// XFAIL: dylib-has-no-filesystem // diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp index 4e3559f144..a6a293402d 100644 --- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp @@ -12,7 +12,7 @@ // GCC's implementation of class template deduction is still immature and runs // into issues with libc++. However GCC accepts this code when compiling // against libstdc++. -// XFAIL: gcc +// XFAIL: gcc-4.8, gcc-5, gcc-6, gcc-7, gcc-8, gcc-9, gcc-10, gcc-11 //