diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-09-20 22:03:22 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-09-20 22:03:22 +0000 |
commit | 9fa6b0af1f0a8ec3d6799f54a7c8feedbbc0d4f9 (patch) | |
tree | c777e12a86d2297992869f6434a715f22b9b1da3 /gcc/fortran/resolve.c | |
parent | 4f68f111df59d8474f3635bb7a3eb5e0469b722b (diff) | |
download | gcc-9fa6b0af1f0a8ec3d6799f54a7c8feedbbc0d4f9.zip gcc-9fa6b0af1f0a8ec3d6799f54a7c8feedbbc0d4f9.tar.gz gcc-9fa6b0af1f0a8ec3d6799f54a7c8feedbbc0d4f9.tar.bz2 |
re PR fortran/33221 (Cannot declare variables of TYPE without components)
PR fortran/33221
* gfortran.h (symbol_attribute): Add zero_comp field.
* symbol.c (gfc_use_derived): Handle case of emtpy derived types.
* decl.c (gfc_match_data_decl): Likewise.
(gfc_match_derived_decl): Likewise.
* module.c (ab_attribute, attr_bits): Add AB_ZERO_COMP member.
(mio_symbol_attribute): Write and read AB_ZERO_COMP.
* resolve.c (resolve_symbol): Handle case of emtpy derived types.
* parse.c (parse_derived): Likewise.
* gfortran.dg/used_types_18.f90: Declare variable of empty
derived type.
From-SVN: r128633
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 1b3aab61..26632bb 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -7627,7 +7627,8 @@ resolve_symbol (gfc_symbol *sym) the type is not declared in the scope of the implicit statement. Change the type to BT_UNKNOWN, both because it is so and to prevent an ICE. */ - if (sym->ts.type == BT_DERIVED && sym->ts.derived->components == NULL) + if (sym->ts.type == BT_DERIVED && sym->ts.derived->components == NULL + && !sym->ts.derived->attr.zero_comp) { gfc_error ("The derived type '%s' at %L is of type '%s', " "which has not been defined", sym->name, |