diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-09 01:02:41 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-09 01:02:41 +0000 |
commit | 36f972b713ddf335067475c954d2bed3173ceba9 (patch) | |
tree | 8e8da9c59e5dc031989b5dd3db980a99e0ca0275 /gcc/fortran/expr.c | |
parent | 2bf27f6b65f23699f2d28386b0714e804b9d0571 (diff) |
re PR fortran/88025 (ICE in gfc_apply_init, at fortran/expr.c:4468)
2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88025
* expr.c (gfc_apply_init): Remove asserts that cannot trigger.
Check for a NULL pointer.
2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88025
* gfortran.dg/pr88025.f90: New test.
From-SVN: r266913
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r-- | gcc/fortran/expr.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index 388fddab4729..6cea5b07393c 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -4485,12 +4485,10 @@ gfc_apply_init (gfc_typespec *ts, symbol_attribute *attr, gfc_expr *init) { if (ts->type == BT_CHARACTER && !attr->pointer && init && ts->u.cl - && ts->u.cl->length && ts->u.cl->length->expr_type == EXPR_CONSTANT) + && ts->u.cl->length + && ts->u.cl->length->expr_type == EXPR_CONSTANT + && ts->u.cl->length->ts.type == BT_INTEGER) { - gcc_assert (ts->u.cl && ts->u.cl->length); - gcc_assert (ts->u.cl->length->expr_type == EXPR_CONSTANT); - gcc_assert (ts->u.cl->length->ts.type == BT_INTEGER); - HOST_WIDE_INT len = gfc_mpz_get_hwi (ts->u.cl->length->value.integer); if (init->expr_type == EXPR_CONSTANT) |