https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109359
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ah, cp/constexpr.cc already uses fold_binary_initializer_loc if -fconstexpr-fp-except. That will turn the -frounding-math temporarily off for binary operations. For this PR guess we need to use fold_init or fold_build1_initializer_loc instead of fold or fold_build1 in the NOP_EXPR handling under the same conditions. Plus of course we need to figure out how to fix the issue if we didn't turn those off (we shouldn't consider the initializer constant then but evaluate dynamically).