https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113799

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |7.5.0, 8.5.0, 9.5.0

--- Comment #6 from anlauf at gcc dot gnu.org ---
It appears that we have an inconsistency in the handling of arithmetic
errors during simplification.

check_result has:

  if (val == ARITH_OK || val == ARITH_OVERFLOW)
    *rp = r;
  else
    gfc_free_expr (r);


while reduce_unary has:

  for (c = gfc_constructor_first (head); c; c = gfc_constructor_next (c))
    {
      rc = reduce_unary (eval, c->expr, &r);

      if (rc != ARITH_OK)
        break;

      gfc_replace_expr (c->expr, r);
    }

With -fno-range-check, ARITH_OVERFLOW does not appear.

Reply via email to