aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2023-09-14 08:59:20 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2023-09-14 09:31:48 +0000
commit62b29347c38394ae32858f2301aa9aa65205984e (patch)
treec275e3bcf9cde9ed716c8b91831d61c3e368335f
parent53ad1bd520759580b9a5cc590a81a1a30b9e2e28 (diff)
downloadgcc-62b29347c38394ae32858f2301aa9aa65205984e.zip
gcc-62b29347c38394ae32858f2301aa9aa65205984e.tar.gz
gcc-62b29347c38394ae32858f2301aa9aa65205984e.tar.bz2
libstdc++: Add dg-require-thread-fence in several tests
Some targets like arm-eabi with newlib and default settings rely on __sync_synchronize() to ensure synchronization. Newlib does not implement it by default, to make users aware they have to take special care. This makes a few tests fail to link. This patch requires the missing thread-fence effective target in the tests that need it, making them UNSUPPORTED instead of FAIL and UNRESOLVED. 2023-09-10 Christophe Lyon <christophe.lyon@linaro.org> libstdc++-v3/ * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise. * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise. * testsuite/29_atomics/atomic_float/value_init.cc: Likewise. * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise. * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise. * testsuite/29_atomics/atomic_ref/generic.cc: Likewise. * testsuite/29_atomics/atomic_ref/integral.cc: Likewise. * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc1
8 files changed, 8 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
index c4ab876..2e7ff03 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
@@ -1,5 +1,6 @@
// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
index 47d5a5d..b801948 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
@@ -17,6 +17,7 @@
// { dg-options "-std=gnu++2a" }
// { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
index 1cd1efb..6e89f2f 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
@@ -17,6 +17,7 @@
// { dg-options "-std=gnu++2a" }
// { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
index 96615a7..2f6a48d 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
@@ -17,6 +17,7 @@
// { dg-options "-std=gnu++2a" }
// { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
#include <atomic>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
index 0dab8a2..8469ebf 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
@@ -1,5 +1,6 @@
// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
index 14f417d..adae07f 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
@@ -17,6 +17,7 @@
// { dg-options "-std=gnu++2a" }
// { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
index e03ca92..a98adb7 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
@@ -17,6 +17,7 @@
// { dg-options "-std=gnu++2a" }
// { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
index 8cd0e12..b9c7d84 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
@@ -17,6 +17,7 @@
// { dg-options "-std=gnu++2a" }
// { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>