https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78158

Dmitry Vyukov <dvyukov at google dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dvyukov at google dot com

--- Comment #1 from Dmitry Vyukov <dvyukov at google dot com> ---
I can reproduce it with g++ (GCC) 6.0.0 20151206 (experimental).
The only combination of flags that produces the race is:
g++ /tmp/test.cc -fsanitize=thread -std=c++14 -O0 -DNDEBUG
With higher optimization levels the race goes away. Without -DNDEBUG the race
goes away. I think NDEBUG is red herring, it just removes the additional atomic
loads in asserts and thus removes additional synchronization that masks the
race.

Reply via email to