From: Andrew MacLeod Date: Wed, 7 Jun 2023 18:03:35 +0000 (-0400) Subject: Fix floating point bug in fold_range. X-Git-Tag: basepoints/gcc-15~8505 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ce81740c44c07a82a0839fa8c08a0a51a72c5cfe;p=thirdparty%2Fgcc.git Fix floating point bug in fold_range. We currently do not have any floating point operators where operand 1 is a different type than the LHS. When we eventually do there is a bug in fold_range. If either operand is a known NAN, it returns a NAN of the type of operand 1 instead of the result type. * range-op-float.cc (range_operator_float::fold_range): Return NAN of the result type. --- diff --git a/gcc/range-op-float.cc b/gcc/range-op-float.cc index a99a6b01ed83..af598b60a790 100644 --- a/gcc/range-op-float.cc +++ b/gcc/range-op-float.cc @@ -57,7 +57,7 @@ range_operator_float::fold_range (frange &r, tree type, return true; if (op1.known_isnan () || op2.known_isnan ()) { - r.set_nan (op1.type ()); + r.set_nan (type); return true; }