re PR fortran/49693 (Spurious "unused-variable" warnings for COMMON block module...
authorThomas Koenig <tkoenig@gcc.gnu.org>
Wed, 4 Jan 2012 11:51:37 +0000 (11:51 +0000)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Wed, 4 Jan 2012 11:51:37 +0000 (11:51 +0000)
2012-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/49693
* trans-common.c (create_common): Update copyright years.  Mark
variables as used to avoid warnings about unused variables in
common blocks.

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

PR fortran/49693
* gfortran.dg/common_17.f90:  New test.

From-SVN: r182869

gcc/fortran/ChangeLog
gcc/fortran/trans-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/common_17.f90 [new file with mode: 0644]

index d752513e999ad229b1cbc285b77e2be98966824b..305646fef5fdaa008c0621775da5420246b96a81 100644 (file)
@@ -1,3 +1,10 @@
+2012-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/49693
+       * trans-common.c (create_common): Update copyright years.  Mark
+       variables as used to avoid warnings about unused variables in
+       common blocks.
+
 2012-01-03  Hans-Peter Nilsson  <hp@axis.com>
 
        * gfortran.h (struct gfc_expr): Add missing "struct"
index 61ce44ba37adc09d7d96a9519f56c6fdbe3f6c78..22aa3502dbd6c423cc96a6d410ae9638a3838b86 100644 (file)
@@ -1,5 +1,6 @@
 /* Common block and equivalence list handling
-   Copyright (C) 2000, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2000, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+   2011, 2012
    Free Software Foundation, Inc.
    Contributed by Canqun Yang <canqun@nudt.edu.cn>
 
@@ -689,7 +690,9 @@ create_common (gfc_common_head *com, segment_info *head, bool saw_equiv)
                             VAR_DECL, DECL_NAME (s->field),
                             TREE_TYPE (s->field));
       TREE_STATIC (var_decl) = TREE_STATIC (decl);
-      TREE_USED (var_decl) = TREE_USED (decl);
+      /* Mark the variable as used in order to avoid warnings about
+        unused variables.  */
+      TREE_USED (var_decl) = 1;
       if (s->sym->attr.use_assoc)
        DECL_IGNORED_P (var_decl) = 1;
       if (s->sym->attr.target)
index 556e6763f449fece57fd13377db28f4b6f685939..e6c002f2c8dd7d0f1ec0409169e34a012eeb4229 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/49693
+       * gfortran.dg/common_17.f90:  New test.
+
 2012-01-04  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/49651
diff --git a/gcc/testsuite/gfortran.dg/common_17.f90 b/gcc/testsuite/gfortran.dg/common_17.f90
new file mode 100644 (file)
index 0000000..8ac21e7
--- /dev/null
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! { dg-options "-Wall" }
+! PR fortran/49693 - this used to cause a spurious warning for the
+! variable in the common block.
+! Test case by Stephan Kramer.
+module foo
+  implicit none
+  integer:: a, b
+  common a
+end module foo
+! { dg-final { cleanup-modules "foo" } }