https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110622
--- Comment #11 from Mathieu Malaterre <malat at debian dot org> --- Typical setup: g++ -fno-asynchronous-unwind-tables -fno-exceptions -fno-rtti -DHIDESYMPTOM -std=c++11 -g -m32 -fexcess-precision=fast -O2 -o works math_test.cc -Wfatal-errors -Wall -Wextra -Wpedantic -Wconversion -Werror and: g++ -fno-asynchronous-unwind-tables -fno-exceptions -fno-rtti -std=c++11 -g -m32 -fexcess-precision=fast -O2 -o fails math_test.cc -Wfatal-errors -Wall -Wextra -Wpedantic -Wconversion -Werror You can observe that the only difference is that I am preventing an elision : ``` % grep -A2 HIDE math_test.cc #ifdef HIDESYMPTOM asm volatile("" : "+r"(y.raw[0]) : : "memory"); #endif ```