Commit 7d2fb01c by Steven G. Kargl

re PR fortran/84734 (Compiling codes with insane array dimensions gives an ICE after r257971)

2018-03-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/84734
	* arith.c (check_result, eval_intrinsic):  If result overflows, pass
	the expression up the chain instead of a NULL pointer.

2018-03-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/84734
	* gfortran.dg/pr84734.f90: New test.

From-SVN: r258416
parent b3231b65
2018-03-10 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/84734
* arith.c (check_result, eval_intrinsic): If result overflows, pass
the expression up the chain instead of a NULL pointer.
2018-03-07 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/64124
......
......@@ -555,10 +555,10 @@ check_result (arith rc, gfc_expr *x, gfc_expr *r, gfc_expr **rp)
val = ARITH_OK;
}
if (val != ARITH_OK)
gfc_free_expr (r);
else
if (val == ARITH_OK || val == ARITH_OVERFLOW)
*rp = r;
else
gfc_free_expr (r);
return val;
}
......@@ -1603,9 +1603,13 @@ eval_intrinsic (gfc_intrinsic_op op,
if (rc != ARITH_OK)
{
gfc_error (gfc_arith_error (rc), &op1->where);
if (rc == ARITH_OVERFLOW)
goto done;
return NULL;
}
done:
gfc_free_expr (op1);
gfc_free_expr (op2);
return result;
......
2018-03-10 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/84734
* gfortran.dg/pr84734.f90: New test.
2018-03-10 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/prot3.adb: New test.
......
! { dg-do compile }
! PR fortran/84734
integer :: b(huge(1_8)+1_8) = 0 ! { dg-error "Arithmetic overflow" }
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment