https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90930
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >The file also compiles well if –O2 is removed and all optimization flags >described in >https://gcc.gnu.org/onlinedocs/gcc-7.4.0/gcc/Optimize-Options.html#Optimize-Options You did not read that fully: Most optimizations are only enabled if an -O level is set on the command line. So obviously not including -O will cause -O0 to be done and most of those options also to be ignored.