diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-09 06:09:47 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-09 06:09:47 +0000 |
commit | 019761d2240fc7754a50ee2b9e199c0591c21c7a (patch) | |
tree | 5cc946a0f65e28d4a293cfc6d07523c9ca682f38 /gcc/fortran/resolve.c | |
parent | 094a0eccf9bbd33d452713192905a759f9ac27a9 (diff) | |
download | gcc-019761d2240fc7754a50ee2b9e199c0591c21c7a.zip gcc-019761d2240fc7754a50ee2b9e199c0591c21c7a.tar.gz gcc-019761d2240fc7754a50ee2b9e199c0591c21c7a.tar.bz2 |
re PR fortran/88048 (ICE in check_data_variable, at fortran/resolve.c:15491)
2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88048
* resolve.c (check_data_variable): Named constant cannot be a
data object.
2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88048
* gfortran.dg/pr88048.f90: New test.
From-SVN: r266916
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 35352c6..949fe98 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -15493,7 +15493,10 @@ check_data_variable (gfc_data_variable *var, locus *where) e = e->value.function.actual->expr; if (e->expr_type != EXPR_VARIABLE) - gfc_internal_error ("check_data_variable(): Bad expression"); + { + gfc_error ("Expecting definable entity near %L", where); + return false; + } sym = e->symtree->n.sym; @@ -15501,6 +15504,7 @@ check_data_variable (gfc_data_variable *var, locus *where) { gfc_error ("BLOCK DATA element %qs at %L must be in COMMON", sym->name, &sym->declared_at); + return false; } if (e->ref == NULL && sym->as) |