http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49693
Summary: Spurious "unused-variable" warnings for COMMON block module variables. Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: stephan.kra...@imperial.ac.uk As of gfortran 4.6, module variables that are also part of a common block cause spurious "unused variable" warnings. The following example module foo implicit none integer:: a, b common a end module foo produces: $ gfortran -c -Wall test.f90 test.f90:3:0: warning: ‘a’ defined but not used [-Wunused-variable] Although common variables are deprecated they're still commonly used in libraries such as mpi and petsc to define some global paramaters. I therefore get quite a few warning messages in every module that uses these (and also everywhere module that subsequently uses such modules). Example here with openmpi: $ cat test.f90 module foo use mpi use petsc end module $ mpif90 -I/usr/lib/petscdir/3.1/linux-gnu-c-opt/include/ -Wall -c test.f90 test.f90:2:0: warning: ‘mpi_argv_null’ defined but not used test.f90:2:0: warning: ‘mpi_in_place’ defined but not used test.f90:2:0: warning: ‘mpi_status_ignore’ defined but not used test.f90:2:0: warning: ‘mpi_statuses_ignore’ defined but not used test.f90:3:0: warning: ‘petsc_comm_self’ defined but not used test.f90:3:0: warning: ‘petsc_null_integer’ defined but not used test.f90:3:0: warning: ‘petsc_null’ defined but not used test.f90:3:0: warning: ‘petsc_null_scalar’ defined but not used test.f90:3:0: warning: ‘petsc_null_double’ defined but not used test.f90:3:0: warning: ‘petsc_null_real’ defined but not used test.f90:3:0: warning: ‘petsc_null_truth’ defined but not used test.f90:2:0: warning: ‘mpi_argvs_null’ defined but not used test.f90:3:0: warning: ‘petsc_null_object’ defined but not used test.f90:3:0: warning: ‘petsc_comm_world’ defined but not used test.f90:2:0: warning: ‘mpi_argv_null’ defined but not used test.f90:2:0: warning: ‘mpi_argvs_null’ defined but not used test.f90:2:0: warning: ‘mpi_bottom’ defined but not used test.f90:2:0: warning: ‘mpi_errcodes_ignore’ defined but not used test.f90:2:0: warning: ‘mpi_in_place’ defined but not used test.f90:2:0: warning: ‘mpi_status_ignore’ defined but not used test.f90:2:0: warning: ‘mpi_statuses_ignore’ defined but not used test.f90:3:0: warning: ‘petsc_null_character’ defined but not used test.f90:2:0: warning: ‘mpi_bottom’ defined but not used test.f90:2:0: warning: ‘mpi_errcodes_ignore’ defined but not used