http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57617
Bug ID: 57617 Summary: OpenMP critical does not seem to synchronise correctly Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nmm1 at cam dot ac.uk Created attachment 30305 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30305&action=edit Gzipped tar file of sources, command to run the test and output There are some ancient problems that match this (e.g. 45025), but I can't find a new one. I have written a portable, multi-interface memory consistency checker for some common 'atomic' paradigms, and one of my tests finds that gcc -fopenmp isn't behaving. In the attached files, look for 'NOT expected' in output - I will report the store/load one separately. Regrettably, there is no documentation yet and this is not stripped down, but the code is structured so that the relevant function's assembler can be inspected (with -O0 at least). I ran commands to generate output. If you find a bug in my code, I shan't be surprised :-(