http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49965
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-08-03 16:37:36 UTC --- So what values it printed? Did it print -2.0 and 9.0 in some iterations? The final merging is done in a critical section between GOMP_atomic_start and GOMP_atomic_end, perhaps you can put a breakpoint in there and watch how the values are merged using the MIN_EXPR. Can you reproduce the failure with OMP_NUM_THREADS=1 BTW?