diff options
Diffstat (limited to 'gcc/range-op-float.cc')
-rw-r--r-- | gcc/range-op-float.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/range-op-float.cc b/gcc/range-op-float.cc index 0c4ec8d..adb0cba 100644 --- a/gcc/range-op-float.cc +++ b/gcc/range-op-float.cc @@ -83,10 +83,12 @@ range_operator_float::fold_range (frange &r, tree type, r.set (type, lb, ub); - if (lb_nan || ub_nan || maybe_nan) + if (lb_nan || ub_nan || maybe_nan + || op1.maybe_isnan () + || op2.maybe_isnan ()) // Keep the default NAN (with a varying sign) set by the setter. ; - else if (!op1.maybe_isnan () && !op2.maybe_isnan ()) + else r.clear_nan (); return true; |