https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100839
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|FIXED |INVALID --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Daniel Gibson from comment #4) > Nope. > > 1. -std=c++11 doesn't make a difference, just tested it on compiler explorer. > 2. What's the point of -Ofast ("It also enables optimizations that are not > valid for all standard-compliant programs.") if the normal optimization > levels already violate the standard? Oh that is because C++ allows it while C does not. /* ISO C restricts floating-point expression contraction to within source-language expressions (-ffp-contract=on, currently an alias for -ffp-contract=off). */ if (flag_iso && !c_dialect_cxx () && (global_options_set.x_flag_fp_contract_mode == (enum fp_contract_mode) 0) && flag_unsafe_math_optimizations == 0) flag_fp_contract_mode = FP_CONTRACT_OFF;