Strange endless loop in release mode

Well, one of my friend just got the same issue. GCC 4.3, AMD64 instruction set, Juce compiled as a static lib, with the exact same flags as the project.
Struck exactly at the same position in Atomic code as the first post.

I can give the disassembly, but in short, the “lock cmpxchg rdx, *rbx” is blocked, and the register value rdx, rax and data pointed by rbx are both 0x12bea0
so it’s exactly like if you had:
value = newValue;
while (!compareAndSetBool(newValue, newValue));

There is only one thread, the application doesn’t even start (struck in the initialisation).
If compiled in -O0 (no optimization), it works.