Commit c20a90e0 by Steven G. Kargl

re PR fortran/91784 (ICE in gfc_real2complex, at fortran/arith.c:2208)

2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91784
	* simplify.c (gfc_convert_constant): Simplify expression if the
	expres	ion type is EXPR_OP.

2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91784
	* gfortran.dg/pr91784.f90: New test.

From-SVN: r276474
parent 307de100
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/91784
* simplify.c (gfc_convert_constant): Simplify expression if the
expression type is EXPR_OP.
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/91785
* primary.c (gfc_match_varspec): Ensure an inquiry parameter has
it locus set.
......
......@@ -8508,10 +8508,10 @@ gfc_convert_constant (gfc_expr *e, bt type, int kind)
{
if (c->expr->expr_type == EXPR_ARRAY)
tmp = gfc_convert_constant (c->expr, type, kind);
else if (c->expr->expr_type == EXPR_OP
&& c->expr->value.op.op == INTRINSIC_PARENTHESES)
else if (c->expr->expr_type == EXPR_OP)
{
gfc_simplify_expr (c->expr, 1);
if (!gfc_simplify_expr (c->expr, 1))
return &gfc_bad_expr;
tmp = f (c->expr, kind);
}
else
......
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/91784
* gfortran.dg/pr91784.f90: New test.
2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/91785
* gfortran.dg/pr91785.f90: New test.
......
! { dg-do run }
! PR fortran/91784
! Code originally contributed by Gerhard Steinmetz
program p
complex :: x(1)
x = (1.0, 2.0) * [real :: -(3.0 + 4.0)]
if (int(real(x(1))) /= -7) stop 1
if (int(aimag(x(1))) /= -14) stop 2
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