On 09/15/2011 06:19 PM, Richard Henderson wrote:
I wouldn't go that far. They *used* to be compiler barriers, but clearly something broke at some point without anyone noticing. We don't know how many versions are affected until we debug it. For all we know it broke in 4.5 and 4.4 is fine.
4.4 is not necessarily fine, it may also be that an unrelated 4.5 change exposed a latent bug.
But indeed Richard Sandiford mentioned offlist that perhaps ALIAS_SET_MEMORY_BARRIER machinery broke. Fixing the bug in 4.5/4.6/4.7 will definitely shed more light.
There's no reference to a GCC bug report about this in the thread. Did the folks over at the libdispatch project never think to file one?
I asked them to attach a preprocessed testcase somewhere, but they haven't done so yet. :(
Paolo