diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-08-22 18:12:33 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-08-22 18:12:33 +0000 |
commit | ad7a5a8fc58e29b259f8a746899772627a493e9e (patch) | |
tree | 474a158e0e31e8b31f5a75d00d0dc15c07f708b5 /gcc/fortran/trans-decl.c | |
parent | 72f52f3081af48ddddcb9e541c33fbbddfb4215d (diff) | |
download | gcc-ad7a5a8fc58e29b259f8a746899772627a493e9e.zip gcc-ad7a5a8fc58e29b259f8a746899772627a493e9e.tar.gz gcc-ad7a5a8fc58e29b259f8a746899772627a493e9e.tar.bz2 |
re PR fortran/77260 (bogus warning with ENTRY in a function)
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77260
* gcc/fortran/trans-decl.c (generate_local_decl): Suppress warning
for unused variable if symbol is entry point.
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77260
* gfortran.dg/pr77260_1.f90: New test.
* gfortran.dg/pr77260_2.f90: Ditto.
From-SVN: r239666
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 6cf7f57..96d413e 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -5316,9 +5316,19 @@ generate_local_decl (gfc_symbol * sym) } else if (!sym->attr.use_assoc) { - gfc_warning (OPT_Wunused_variable, - "Unused variable %qs declared at %L", - sym->name, &sym->declared_at); + /* Corner case: the symbol may be an entry point. At this point, + it may appear to be an unused variable. Suppress warning. */ + bool enter = false; + gfc_entry_list *el; + + for (el = sym->ns->entries; el; el=el->next) + if (strcmp(sym->name, el->sym->name) == 0) + enter = true; + + if (!enter) + gfc_warning (OPT_Wunused_variable, + "Unused variable %qs declared at %L", + sym->name, &sym->declared_at); if (sym->backend_decl != NULL_TREE) TREE_NO_WARNING(sym->backend_decl) = 1; } |