diff options
Diffstat (limited to 'gcc/fortran/trans-const.c')
-rw-r--r-- | gcc/fortran/trans-const.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/fortran/trans-const.c b/gcc/fortran/trans-const.c index 035f40b..e2cd40b 100644 --- a/gcc/fortran/trans-const.c +++ b/gcc/fortran/trans-const.c @@ -340,7 +340,7 @@ void gfc_conv_constant (gfc_se * se, gfc_expr * expr) { /* We may be receiving an expression for C_NULL_PTR or C_NULL_FUNPTR. If - so, they expr_type will not yet be an EXPR_CONSTANT. We need to make + so, the expr_type will not yet be an EXPR_CONSTANT. We need to make it so here. */ if (expr->ts.type == BT_DERIVED && expr->ts.u.derived && expr->ts.u.derived->attr.is_iso_c) @@ -353,7 +353,11 @@ gfc_conv_constant (gfc_se * se, gfc_expr * expr) } } - gcc_assert (expr->expr_type == EXPR_CONSTANT); + if (expr->expr_type != EXPR_CONSTANT) + { + gfc_error ("non-constant initialization expression at %L", &expr->where); + return; + } if (se->ss != NULL) { |