re PR fortran/91553 (ICE in gfc_real2complex, at fortran/arith.c:2208)
2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91553 * simplify.c (gfc_convert_constant): During conversion check if the constant is enclosed in parenthesis, and simplify expression. 2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91553 * gfortran.dg/pr91553.f90: New test. From-SVN: r275657
This commit is contained in:
parent
84e3325133
commit
22aa73bda4
4 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/91553
|
||||
* simplify.c (gfc_convert_constant): During conversion check if the
|
||||
constant is enclosed in parenthesis, and simplify expression.
|
||||
|
||||
2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/91642
|
||||
|
|
|
@ -8503,6 +8503,12 @@ 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)
|
||||
{
|
||||
gfc_simplify_expr (c->expr, 1);
|
||||
tmp = f (c->expr, kind);
|
||||
}
|
||||
else
|
||||
tmp = f (c->expr, kind);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/91553
|
||||
* gfortran.dg/pr91553.f90: New test.
|
||||
|
||||
2019-09-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/91642
|
||||
|
|
8
gcc/testsuite/gfortran.dg/pr91553.f90
Normal file
8
gcc/testsuite/gfortran.dg/pr91553.f90
Normal file
|
@ -0,0 +1,8 @@
|
|||
! { dg-do run }
|
||||
! Code contributed by Gerhard Steinmetz
|
||||
program p
|
||||
complex z(1)
|
||||
z = (1.0, 2.0) * [real :: (3.0 + 4.0)]
|
||||
if (real(z(1)) /= 7.) stop 1
|
||||
if (aimag(z(1)) /= 14.) stop 2
|
||||
end
|
Loading…
Add table
Reference in a new issue