s/atomic-exchange/atomic-cmpxchg-word/g. Tested as v1. Ok to commit? -- >8 -- These tests actually use a form of atomic compare and exchange operation, not just atomic loading and storing. Some targets (not supported by e.g. libatomic) have atomic loading and storing, but not compare and exchange, yielding linker errors for missing library functions.
This change is just for existing uses of dg-require-thread-fence. It does not fix any other tests that should also be gated on dg-require-atomic-cmpxchg-word. * testsuite/29_atomics/atomic/compare_exchange_padding.cc, testsuite/29_atomics/atomic_flag/clear/1.cc, testsuite/29_atomics/atomic_flag/cons/value_init.cc, testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc, testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc, testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc, testsuite/29_atomics/atomic_ref/generic.cc, testsuite/29_atomics/atomic_ref/integral.cc, testsuite/29_atomics/atomic_ref/pointer.cc: Replace dg-require-thread-fence with dg-require-atomic-cmpxchg-word. --- .../testsuite/29_atomics/atomic/compare_exchange_padding.cc | 2 +- libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc | 2 +- .../testsuite/29_atomics/atomic_flag/cons/value_init.cc | 2 +- .../testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc | 2 +- .../testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc | 2 +- .../testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc | 2 +- libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc | 2 +- libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc | 2 +- libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc | 2 +- 9 files changed, 9 insertions(+), 9 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 01f7475631e6..859629e625f8 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,5 @@ // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { dg-add-options libatomic } #include <atomic> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc index 89ed381fe057..2e154178dbd7 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc @@ -1,5 +1,5 @@ // { dg-do run { target c++11 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // Copyright (C) 2009-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc index f3f38b54dbcd..6439873be133 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc @@ -16,7 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } #include <atomic> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc index 6f723eb5f4e7..6cb1ae2b6dda 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc @@ -1,5 +1,5 @@ // { dg-do run { target c++11 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // Copyright (C) 2008-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc index 6f723eb5f4e7..6cb1ae2b6dda 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc @@ -1,5 +1,5 @@ // { dg-do run { target c++11 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // Copyright (C) 2008-2023 Free Software Foundation, Inc. // 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 2a3d1d468c22..25ccd2e94336 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,5 @@ // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { 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 f8751756d02c..c342b1aae292 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc @@ -16,7 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { 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 eb22afca03a2..134fb16506c3 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc @@ -16,7 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { 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 6fe00b557567..fd26a053151f 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc @@ -16,7 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { dg-add-options libatomic } #include <atomic> -- 2.30.2