From 6e15f55de3b8dfbdc6b53ba7d81a49b57f096807 Mon Sep 17 00:00:00 2001 From: Jake Egan Date: Thu, 6 Jun 2024 13:34:07 -0400 Subject: [PATCH] [libc++][test][AIX] Only XFAIL atomic tests for before clang 19 --- .../atomics.types.float/fetch_add.pass.cpp | 5 ++++- .../atomics.types.float/fetch_sub.pass.cpp | 5 ++++- .../atomics.types.float/operator.minus_equals.pass.cpp | 5 ++++- .../atomics.types.float/operator.plus_equals.pass.cpp | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp index 7350c1ddf0e90..40a475ec38b72 100644 --- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp +++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp @@ -6,9 +6,12 @@ // //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11, c++14, c++17 -// UNSUPPORTED: LIBCXX-AIX-FIXME // XFAIL: !has-64-bit-atomics +// Older versions of clang have a bug with atomic builtins affecting double and long double. +// Fixed by 5fdd0948. +// XFAIL: target=powerpc-ibm-{{.*}} && (clang-17 || clang-18) + // https://github.com/llvm/llvm-project/issues/72893 // XFAIL: target={{x86_64-.*}} && tsan diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp index 84dcde5f2784f..9e798a2a519ff 100644 --- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp +++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp @@ -6,9 +6,12 @@ // //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11, c++14, c++17 -// UNSUPPORTED: LIBCXX-AIX-FIXME // XFAIL: !has-64-bit-atomics +// Older versions of clang have a bug with atomic builtins affecting double and long double. +// Fixed by 5fdd0948. +// XFAIL: target=powerpc-ibm-{{.*}} && (clang-17 || clang-18) + // https://github.com/llvm/llvm-project/issues/72893 // XFAIL: target={{x86_64-.*}} && tsan diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp index 386a393e35503..732bd4d7e5dc2 100644 --- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp +++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp @@ -6,9 +6,12 @@ // //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11, c++14, c++17 -// UNSUPPORTED: LIBCXX-AIX-FIXME // XFAIL: !has-64-bit-atomics +// Older versions of clang have a bug with atomic builtins affecting double and long double. +// Fixed by 5fdd0948. +// XFAIL: target=powerpc-ibm-{{.*}} && (clang-17 || clang-18) + // floating-point-type operator-=(floating-point-type) volatile noexcept; // floating-point-type operator-=(floating-point-type) noexcept; diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp index afd06d537c7ad..1821aca42c798 100644 --- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp +++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp @@ -6,9 +6,12 @@ // //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11, c++14, c++17 -// UNSUPPORTED: LIBCXX-AIX-FIXME // XFAIL: !has-64-bit-atomics +// Older versions of clang have a bug with atomic builtins affecting double and long double. +// Fixed by 5fdd0948. +// XFAIL: target=powerpc-ibm-{{.*}} && (clang-17 || clang-18) + // floating-point-type operator+=(floating-point-type) volatile noexcept; // floating-point-type operator+=(floating-point-type) noexcept;