diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-11-25 22:12:19 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-11-25 22:12:19 +0000 |
commit | f1607c0199cf4c62a27a73d580e5bc25eb46e6ef (patch) | |
tree | 9cf8bd0129df397f429356cb278234f8fd226202 /gcc/fortran/resolve.c | |
parent | bfd61955ce652ec1c4bb1228fcf43e46424ebf41 (diff) | |
download | gcc-f1607c0199cf4c62a27a73d580e5bc25eb46e6ef.zip gcc-f1607c0199cf4c62a27a73d580e5bc25eb46e6ef.tar.gz gcc-f1607c0199cf4c62a27a73d580e5bc25eb46e6ef.tar.bz2 |
re PR fortran/33152 (Initialization/declaration problems in block data)
2007-11-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/33152
* decl.c (add_init_expr_to_sym): Remove error message.
* resolve.c (check_data_variable): Add new check for a data variable
that has an array spec, but no ref and issue an error.
* match.c (gfc_match_common): Remove error message.
From-SVN: r130415
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index c6808eb..0fe5d32 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -8010,6 +8010,13 @@ check_data_variable (gfc_data_variable *var, locus *where) e->symtree->n.sym->name, &e->symtree->n.sym->declared_at); } + if (e->ref == NULL && e->symtree->n.sym->as) + { + gfc_error ("DATA array '%s' at %L must be specified in a previous" + " declaration", e->symtree->n.sym->name, where); + return FAILURE; + } + if (e->rank == 0) { mpz_init_set_ui (size, 1); |