diff options
author | Janus Weil <jaydub66@gmail.com> | 2007-09-04 13:50:35 +0000 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2007-09-04 15:50:35 +0200 |
commit | 6977374226b230fe6e6d9b5ce2615bea094cb0f1 (patch) | |
tree | 978d0573428d251aa1224d4da532cdb6c957b8b0 /gcc/fortran/interface.c | |
parent | 8070c91a53e4f058080e610b9d18c7c2c7d6fdfe (diff) | |
download | gcc-6977374226b230fe6e6d9b5ce2615bea094cb0f1.zip gcc-6977374226b230fe6e6d9b5ce2615bea094cb0f1.tar.gz gcc-6977374226b230fe6e6d9b5ce2615bea094cb0f1.tar.bz2 |
decl.c (match_procedure_decl,match_procedure_in_interface, [...]): Handle PROCEDURE statements.
2007-09-04 Janus Weil <jaydub66@gmail.com>
Paul Thomas <pault@gcc.gnu.org>
* decl.c (match_procedure_decl,match_procedure_in_interface,
gfc_match_procedure): Handle PROCEDURE statements.
* gfortran.h (struct gfc_symbol): New member "gfc_symbol *interface".
(enum gfc_statement): New element "ST_PROCEDURE".
(strcut symbol_attribute): New member "unsigned procedure".
* interface.c (check_interface0): Extended error checking.
* match.h: Add gfc_match_procedure prototype.
* parse.c (decode_statement,next_statement,gfc_ascii_statement,
parse_derived,parse_interface): Implement PROCEDURE statements.
* resolve.c (resolve_symbol): Ditto.
* symbol.c (check_conflict): Ditto.
(gfc_add_proc): New function for setting the procedure attribute.
(copy_formal_args): New function for copying formal argument lists.
2007-09-04 Janus Weil <jaydub66@gmail.com>
Tobias Burnus <burnus@net-b.de>
* gfortran.dg/proc_decl_1.f90: New.
* gfortran.dg/proc_decl_2.f90: New.
* gfortran.dg/proc_decl_3.f90: New.
* gfortran.dg/proc_decl_4.f90: New.
Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r128081
Diffstat (limited to 'gcc/fortran/interface.c')
-rw-r--r-- | gcc/fortran/interface.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 7bb5a25..741bba5 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -986,7 +986,8 @@ check_interface0 (gfc_interface *p, const char *interface_name) /* Make sure all symbols in the interface have been defined as functions or subroutines. */ for (; p; p = p->next) - if (!p->sym->attr.function && !p->sym->attr.subroutine) + if ((!p->sym->attr.function && !p->sym->attr.subroutine) + || !p->sym->attr.if_source) { if (p->sym->attr.external) gfc_error ("Procedure '%s' in %s at %L has no explicit interface", |