https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102714
--- Comment #1 from Jeffle Xu <jefflexu at linux dot alibaba.com> --- Some more detailed information about the effect to the application: Linux kernel relies 'volatile' to do synchronization. Let's say, there are two processes accessing one memory, one of them will write the memory, while the other will read the memory (through 'volatile') in a loop. That is, these two processes will synchronize with each other with this shared memory. With this bug, the process reading the memory may always read the old value (cached in the register) rather than get the new value (from memory), and thus will get stuck in the infinite loop and finally causes soft lockup.