https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67303
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This is a partly false negative. In the sense the load from ws->start just needs to be __atomic_load(&ws->start, RELAX) to be correct. This in it of itself is the same as what it is correctly doing. Just removes the error from the thread santitizer. The main reason why I say this is because we are doing a compare and swap loop to check if ws->start has changed when doing the lock-less popping off the stack.