From: Hans-Peter Nilsson Date: Wed, 4 Oct 2023 02:16:18 +0000 (+0200) Subject: testsuite: Replace many dg-require-thread-fence with dg-require-atomic-cmpxchg-word X-Git-Tag: releases/gcc-13.3.0~485 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18fd8d29b27ec9ace70098b4a451f5296276812e;p=thirdparty%2Fgcc.git testsuite: Replace many dg-require-thread-fence with dg-require-atomic-cmpxchg-word 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. (cherry picked from commit ba0cde8ba2d93b7193050eb5ef3cc6f7a2cdfe61) --- 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 2e7ff0307bc1..72b8ea9df422 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc @@ -1,6 +1,6 @@ // { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { dg-add-options libatomic } #include 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 565d1ac44171..e322ca2054a9 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 @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-atomic-cmpxchg-word "" } #include #include 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 5a2abb401951..f20974b16ae6 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,6 +1,6 @@ // { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { dg-add-options libatomic } #include diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc index adae07f8754a..04ae5abb96a6 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc @@ -17,7 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { dg-add-options libatomic } #include diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc index a98adb7fbba3..1728a095ea95 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc @@ -17,7 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { dg-add-options libatomic } #include diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc index b9c7d844b8c5..a54083291810 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc @@ -17,7 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } -// { dg-require-thread-fence "" } +// { dg-require-atomic-cmpxchg-word "" } // { dg-add-options libatomic } #include