https://gcc.gnu.org/g:9421ee136236d183bb37aa5f7b8c522b4503529c
commit 9421ee136236d183bb37aa5f7b8c522b4503529c Author: Alexandre Oliva <[email protected]> Date: Tue Mar 10 04:38:07 2026 -0300 testsuite: tolerate compare_exchange_weak spurious failure compare_exchange_weak is allowed to fail spuriously, and we're actually hitting such spurious failures quite often on ppc-vx7r2, presumably when random interrupts hit between ll and sc. Tolerate one such failure, hopefully that will suffice. for libstdc++-v3/ChangeLog * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Tolerate one compare_exchange_weak spurious failure. Diff: --- libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 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 d9c7b90c1a5c..3fc2f6b4f803 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc @@ -37,8 +37,8 @@ main () fill_struct(n); n.c = 'b'; n.s = 71; - // padding cleared on compexchg - VERIFY( as.compare_exchange_weak(s, n) ); + // padding cleared on compexchg. tolerate one spurious _weak failure. + VERIFY( as.compare_exchange_weak(s, n) || as.compare_exchange_weak(s, n) ); VERIFY( as.compare_exchange_strong(n, s) ); return 0; }
