https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106967
--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, static inline bool finite_operands_p (const frange &op1, const frange &op2) { return flag_finite_math_only || (!op1.maybe_isnan () && !op2.maybe_isnan ()); } is wrong, you should either test HONOR_NANS on the range type or even better, do this check in maybe_isnan (). Btw, since you are "sanitizing" ranges at _set () time for other flag_*, it might be good to simply do that for HONOR_NANS as well so we have a single flag here and always ranges that do not need extra treatment?