diff options
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 57155cd..1950483 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -11664,10 +11664,17 @@ resolve_charlen (gfc_charlen *cl) specification_expr = saved_specification_expr; return false; } + + /* cl->length has been resolved. It should have an integer type. */ + if (cl->length->ts.type != BT_INTEGER) + { + gfc_error ("Scalar INTEGER expression expected at %L", + &cl->length->where); + return false; + } } else { - if (!resolve_index_expr (cl->length)) { specification_expr = saved_specification_expr; |