Commit ad7a5a8f by Steven G. Kargl

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
parent 72f52f30
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;
}
......
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
......
! { 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" } }
! { 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" } }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment