http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59215
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> --- No, you're right, that's a different issue. I think we've just been relying on loads of (correctly-aligned) _Atomic_word being atomic, although that's not going to keep tsan happy! There's no barrier on the read, but I think the worst that will happen is we won't see the correct value and the CAS loop will go round again. We won't see __count==0 spuriously, because once that count reaches zero it never gets incremented again.