Commit 631cfe30 by Thomas Koenig

re PR fortran/52668 (Incorrect unused warning for USE associating variable in common block)

2012-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/52668
	* module.c:  Only mark symbols as use_only if they have been
	imported via an only list.

2012-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/52668
	* gfortran.dg/use_only_6.f90: New test.

From-SVN: r186199
parent 5f250b06
2012-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/52668
* module.c: Only mark symbols as use_only if they have been
imported via an only list.
2012-03-28 Paul Thomas <pault@gcc.gnu.org>
Tobias Burnus <burnus@gcc.gnu.org>
......@@ -5,7 +11,7 @@
* match.c (gfc_match_allocate, gfc_match_deallocate): Change
"not.. or" to "neither.. nor".
* parse.c (decode_specification_statement): Correct error in
chpice of matching function for "allocatable".
chpice of matching function for "allocatable".
2012-03-23 Janne Blomqvist <jb@gcc.gnu.org>
......
......@@ -4389,9 +4389,24 @@ load_needed (pointer_info *p)
/* Mark as only or rename for later diagnosis for explicitly imported
but not used warnings; don't mark internal symbols such as __vtab,
__def_init etc. */
__def_init etc. Only mark them if they have been explicitly loaded. */
if (only_flag && sym->name[0] != '_' && sym->name[1] != '_')
sym->attr.use_only = 1;
{
gfc_use_rename *u;
/* Search the use/rename list for the variable; if the variable is
found, mark it. */
for (u = gfc_rename_list; u; u = u->next)
{
if (strcmp (u->use_name, sym->name) == 0)
{
sym->attr.use_only = 1;
break;
}
}
}
if (p->u.rsym.renamed)
sym->attr.use_rename = 1;
......
2012-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/52668
* gfortran.dg/use_only_6.f90: New test.
2012-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/52668
* gfortran.dg/use_only_6.f90: New test.
2012-04-06 Mike Stump <mikestump@comcast.net>
PR testsuite/50722
......
! { dg-do compile }
! PR 52668 - there used to be a bogus warning about not using b.
! Original test case by Arnaud Desitter.
module mm
integer :: a, b
common /mm1/ a, b
end module mm
subroutine aa()
use mm, only: a
implicit none
a = 1
end subroutine aa
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