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
This commit is contained in:
parent
72f52f3081
commit
ad7a5a8fc5
5 changed files with 77 additions and 3 deletions
|
@ -1,3 +1,10 @@
|
|||
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-19 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/32187
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
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.
|
||||
|
||||
2016-08-22 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR middle-end/77269
|
||||
|
|
25
gcc/testsuite/gfortran.dg/pr77260_1.f90
Normal file
25
gcc/testsuite/gfortran.dg/pr77260_1.f90
Normal file
|
@ -0,0 +1,25 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-Wall" }
|
||||
module foo
|
||||
|
||||
implicit none
|
||||
|
||||
private
|
||||
public f1,f2
|
||||
|
||||
contains
|
||||
|
||||
integer function f1()
|
||||
integer f2
|
||||
f1=5
|
||||
entry f2
|
||||
f2=8
|
||||
end function
|
||||
end module
|
||||
|
||||
program test
|
||||
use foo
|
||||
implicit none
|
||||
print *,f2()
|
||||
end program
|
||||
! { dg-final { cleanup-modules "foo" } }
|
26
gcc/testsuite/gfortran.dg/pr77260_2.f90
Normal file
26
gcc/testsuite/gfortran.dg/pr77260_2.f90
Normal file
|
@ -0,0 +1,26 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-Wall" }
|
||||
module foo
|
||||
|
||||
implicit none
|
||||
|
||||
private
|
||||
public f1,f2
|
||||
|
||||
contains
|
||||
|
||||
integer function f1()
|
||||
integer f2
|
||||
integer f3 ! { dg-warning "Unused variable" }
|
||||
f1=5
|
||||
entry f2
|
||||
f2=8
|
||||
end function
|
||||
end module
|
||||
|
||||
program test
|
||||
use foo
|
||||
implicit none
|
||||
print *,f2()
|
||||
end program
|
||||
! { dg-final { cleanup-modules "foo" } }
|
Loading…
Add table
Reference in a new issue