|
From: Bart V. A. <bar...@gm...> - 2008-02-17 19:39:39
|
Hello Julian, While browsing through the Helgrind documentation, I found the following item in the to do list: * Document races caused by gcc's thread-unsafe code generation for speculative stores. In the interim see http://gcc.gnu.org/ml/gcc/2007-10/msg00266.html and http://lkml.org/lkml/2007/10/24/673. This item may be removed from the to do list: the discussion on the gcc and LKML mailing lists has been closed with the conclusion that speculative stores may not introduce data races in multithreaded programs. This is also what is specified in the draft C++0x memory model (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2338.html). Ian Lance Taylor has developed and checked in a patch that fixes the erroneous gcc behavior (http://gcc.gnu.org/ml/gcc/2007-10/msg00554.html). It might be appropriate however to add a note about which gcc versions can introduce such erroneous behavior. Bart. |