On Wed, 11 Mar 2026, 05:29 Alexandre Oliva, <[email protected]> wrote:

>
> 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.
>

This is a bit of a problem, because we can't tell if the padding was
cleared or not. If it was not clear, the first compare_exchange_weak would
clear it, and the refund would succeed. But we want the test to fail in
that case.

I'll have a think about this when I'm properly awake...



> Regstrapped on x86_64-linux-gnu, also tested with gcc-15 for ppc-vx7r2.
> Ok to install?
>
>
> for  libstdc++-v3/ChangeLog
>
>         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
>         Tolerate one compare_exchange_weak spurious failure.
> ---
>  .../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 d9c7b90c1a5c1..3fc2f6b4f8031 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;
>  }
>
> --
> Alexandre Oliva, happy hacker            https://blog.lx.oliva.nom.br/
> Free Software Activist     FSFLA co-founder     GNU Toolchain Engineer
> More tolerance and less prejudice are key for inclusion and diversity.
> Excluding neuro-others for not behaving ""normal"" is *not* inclusive!
>

Reply via email to