re PR go/89199 (libgo regression in implementation of CompareAndSwap functions result...
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 6 Feb 2019 20:46:00 +0000 (20:46 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 6 Feb 2019 20:46:00 +0000 (20:46 +0000)
commit73fe55d7522864d20026dc8d427026dc4078f9cc
treee70328d426f425d14f9064eb8c7cc43c12f1772f
parent16e2bcd5b9371ca6062bf035bc1d6b88540841d1
re PR go/89199 (libgo regression in implementation of CompareAndSwap functions resulting in intermittent testcase failures on ppc64le power9 after r268458)

PR go/89199
    sync/atomic: use strong form of atomic_compare_exchange_n

    In the recent change to use atomic_compare_exchange_n I thought we
    could use the weak form, which can spuriously fail. But that is not
    how it is implemented in the gc library, and it is not what the rest
    of the library expects.

    Thanks to Lynn Boger for identifying the problem.

    Fixes https://gcc.gnu.org/PR89199

    Reviewed-on: https://go-review.googlesource.com/c/161359

From-SVN: r268591
gcc/go/gofrontend/MERGE
libgo/go/sync/atomic/atomic.c