diff options
| author | Paul Thomas <pault@gcc.gnu.org> | 2006-06-09 22:16:08 +0000 |
|---|---|---|
| committer | Paul Thomas <pault@gcc.gnu.org> | 2006-06-09 22:16:08 +0000 |
| commit | 1a492601a1e4a1e5e16a2de9c10065ce062394e4 (patch) | |
| tree | 8d0fb7320d34f476c6bd5691f92ac2df98f1fb3e /gcc/fortran/trans-decl.c | |
| parent | d0d1b24d8989e0f293291e6f31f08c40f332484c (diff) | |
| download | gcc-1a492601a1e4a1e5e16a2de9c10065ce062394e4.zip gcc-1a492601a1e4a1e5e16a2de9c10065ce062394e4.tar.gz gcc-1a492601a1e4a1e5e16a2de9c10065ce062394e4.tar.bz2 | |
re PR fortran/24558 (ENTRY doesn't work in module procedures)
2006-06-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24558
PR fortran/20877
PR fortran/25047
* decl.c (get_proc_name): Add new argument to flag that a
module function entry is being treated. If true, correct
error condition, add symtree to module namespace and add
a module procedure.
(gfc_match_function_decl, gfc_match_entry,
gfc_match_subroutine): Use the new argument in calls to
get_proc_name.
* resolve.c (resolve_entries): ENTRY symbol reference to
to master entry namespace if a module function.
* trans-decl.c (gfc_create_module_variable): Return if
the symbol is an entry.
* trans-exp.c (gfc_conv_variable): Check that parent_decl
is not NULL.
2006-06-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24558
* gfortran.dg/entry_6.f90: New test.
PR fortran/20877
PR fortran/25047
* gfortran.dg/entry_7.f90: New test.
From-SVN: r114526
Diffstat (limited to 'gcc/fortran/trans-decl.c')
| -rw-r--r-- | gcc/fortran/trans-decl.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 30d51b9..b4fa7f5 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -2653,6 +2653,11 @@ gfc_create_module_variable (gfc_symbol * sym) { tree decl; + /* Module functions with alternate entries are dealt with later and + would get caught by the next condition. */ + if (sym->attr.entry) + return; + /* Only output symbols from this module. */ if (sym->ns != module_namespace) { |
