diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-08-17 18:31:10 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-08-17 18:31:10 +0200 |
commit | dbad8e7176ee00dc98bf84bb41a1b5439d4f4d1f (patch) | |
tree | b6c87518c4460bbff1c20b3ff41532693295bb73 /gcc | |
parent | 0d82a1c872bf48069028cf7753b171121991c95c (diff) | |
download | gcc-dbad8e7176ee00dc98bf84bb41a1b5439d4f4d1f.zip gcc-dbad8e7176ee00dc98bf84bb41a1b5439d4f4d1f.tar.gz gcc-dbad8e7176ee00dc98bf84bb41a1b5439d4f4d1f.tar.bz2 |
re PR fortran/31461 (warn about entities in USE, ONLY statement not later used)
2011-08-17 Tobias Burnus <burnus@net-b.de>
PR fortran/31461
* trans-decl.c (generate_local_decl): Warn about
unused explicitly imported module variables/parameters.
2011-08-17 Tobias Burnus <burnus@net-b.de>
PR fortran/31461
* gfortran.dg/warn_unused_var_2.f90: New.
* gfortran.dg/warn_unused_var_3.f90: New.
From-SVN: r177833
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 16 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/warn_unused_var_2.f90 | 19 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/warn_unused_var_3.f90 | 15 |
5 files changed, 58 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index d7f4b6d..43d011b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2011-08-17 Tobias Burnus <burnus@net-b.de> + + PR fortran/31461 + * trans-decl.c (generate_local_decl): Warn about + unused explicitly imported module variables/parameters. + 2011-08-17 Janus Weil <janus@gcc.gnu.org> PR fortran/50070 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 12c5262..cdbb375 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -4453,6 +4453,9 @@ generate_local_decl (gfc_symbol * sym) || sym->attr.in_namelist)) gfc_warning ("Unused variable '%s' declared at %L", sym->name, &sym->declared_at); + else if (warn_unused_variable && sym->attr.use_only) + gfc_warning ("Unused module variable '%s' which has been explicitly " + "imported at %L", sym->name, &sym->declared_at); /* For variable length CHARACTER parameters, the PARM_DECL already references the length variable, so force gfc_get_symbol_decl @@ -4497,10 +4500,15 @@ generate_local_decl (gfc_symbol * sym) else if (sym->attr.flavor == FL_PARAMETER) { if (warn_unused_parameter - && !sym->attr.referenced - && !sym->attr.use_assoc) - gfc_warning ("Unused parameter '%s' declared at %L", sym->name, - &sym->declared_at); + && !sym->attr.referenced) + { + if (!sym->attr.use_assoc) + gfc_warning ("Unused parameter '%s' declared at %L", sym->name, + &sym->declared_at); + else if (sym->attr.use_only) + gfc_warning ("Unused parameter '%s' which has been explicitly " + "imported at %L", sym->name, &sym->declared_at); + } } else if (sym->attr.flavor == FL_PROCEDURE) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 955764b..9440066 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-08-17 Tobias Burnus <burnus@net-b.de> + + PR fortran/31461 + * gfortran.dg/warn_unused_var_2.f90: New. + * gfortran.dg/warn_unused_var_3.f90: New. + 2011-08-17 Tom de Vries <tom@codesourcery.com> PR target/43597 diff --git a/gcc/testsuite/gfortran.dg/warn_unused_var_2.f90 b/gcc/testsuite/gfortran.dg/warn_unused_var_2.f90 new file mode 100644 index 0000000..7eccc6e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/warn_unused_var_2.f90 @@ -0,0 +1,19 @@ +! { dg-do compile } +! { dg-options "-Wunused" } +! +! PR fortran/31461 +! +! Contributed by Vivek Rao. +! + +module util_mod + integer :: i,j +end module util_mod + +program main + use util_mod, only: i,j ! { dg-warning "Unused module variable .i. which has been explicitly imported" } + j = 1 + print*,"j=",j +end program main + +! { dg-final { cleanup-modules "util_mod" } } diff --git a/gcc/testsuite/gfortran.dg/warn_unused_var_3.f90 b/gcc/testsuite/gfortran.dg/warn_unused_var_3.f90 new file mode 100644 index 0000000..86a8883 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/warn_unused_var_3.f90 @@ -0,0 +1,15 @@ +! { dg-do compile } +! { dg-options "-Wunused-parameter" } +! +! PR fortran/31461 +! +module util_mod + integer, parameter :: i = 4 +end module util_mod + +program main + use util_mod, only: i ! { dg-warning "Unused parameter .i. which has been explicitly imported" } + integer, parameter :: j = 4 ! { dg-warning "Unused parameter .j. declared at" } +end program main + +! { dg-final { cleanup-modules "util_mod" } } |