OSDN Git Service

007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
authormanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Jan 2007 21:05:58 +0000 (21:05 +0000)
committermanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Jan 2007 21:05:58 +0000 (21:05 +0000)
* c-decl.c (pop_scope): Replace warnings with call to
warn_for_unused_label.
* c-common.h (warn_for_unused_label): Declare.
* c-common.c (warn_for_unused_label): Define.
cp/
* decl.c (pop_label): Replace warning with call to
warn_for_unused_label.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121310 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-common.c
gcc/c-common.h
gcc/c-decl.c
gcc/cp/ChangeLog
gcc/cp/decl.c

index cc1f0c3..2137c70 100644 (file)
@@ -1,3 +1,10 @@
+007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * c-decl.c (pop_scope): Replace warnings with call to
+       warn_for_unused_label.
+       * c-common.h (warn_for_unused_label): Declare.
+       * c-common.c (warn_for_unused_label): Define.
+
 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        * tree-optimize.c (update_inlined_to_pointers): Delete unused
 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        * tree-optimize.c (update_inlined_to_pointers): Delete unused
index 4b1718c..1bd59ff 100644 (file)
@@ -6758,5 +6758,18 @@ warn_about_parentheses (enum tree_code code, enum tree_code code_left,
             "have their mathematical meaning");
 }
 
             "have their mathematical meaning");
 }
 
+/* If LABEL (a LABEL_DECL) has not been used, issue a warning.  */
+
+void
+warn_for_unused_label (tree label)
+{
+  if (!TREE_USED (label))
+    {
+      if (DECL_INITIAL (label))
+       warning (OPT_Wunused_label, "label %q+D defined but not used", label);
+      else
+        warning (OPT_Wunused_label, "label %q+D declared but not defined", label);
+    }
+}
 
 #include "gt-c-common.h"
 
 #include "gt-c-common.h"
index 78b3497..5ad4582 100644 (file)
@@ -868,6 +868,7 @@ extern tree builtin_type_for_size (int, bool);
 extern void warn_array_subscript_with_type_char (tree);
 extern void warn_about_parentheses (enum tree_code, enum tree_code,
                                    enum tree_code);
 extern void warn_array_subscript_with_type_char (tree);
 extern void warn_about_parentheses (enum tree_code, enum tree_code,
                                    enum tree_code);
+extern void warn_for_unused_label (tree label);
 
 
 /* In c-gimplify.c  */
 
 
 /* In c-gimplify.c  */
index f669a47..2f9ffc3 100644 (file)
@@ -761,13 +761,9 @@ pop_scope (void)
              error ("label %q+D used but not defined", p);
              DECL_INITIAL (p) = error_mark_node;
            }
              error ("label %q+D used but not defined", p);
              DECL_INITIAL (p) = error_mark_node;
            }
-         else if (!TREE_USED (p) && warn_unused_label)
-           {
-             if (DECL_INITIAL (p))
-               warning (0, "label %q+D defined but not used", p);
-             else
-               warning (0, "label %q+D declared but not defined", p);
-           }
+         else 
+           warn_for_unused_label (p);
+
          /* Labels go in BLOCK_VARS.  */
          TREE_CHAIN (p) = BLOCK_VARS (block);
          BLOCK_VARS (block) = p;
          /* Labels go in BLOCK_VARS.  */
          TREE_CHAIN (p) = BLOCK_VARS (block);
          BLOCK_VARS (block) = p;
index 2d8264e..0746d6a 100644 (file)
@@ -1,3 +1,8 @@
+2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * decl.c (pop_label): Replace warning with call to
+       warn_for_unused_label.
+
 2007-01-28  Andrew Pinski  <pinskia@gmail.com>
 
        PR C++/28988
 2007-01-28  Andrew Pinski  <pinskia@gmail.com>
 
        PR C++/28988
index dfd199b..cea649a 100644 (file)
@@ -365,8 +365,8 @@ pop_label (tree label, tree old_value)
          /* Avoid crashing later.  */
          define_label (location, DECL_NAME (label));
        }
          /* Avoid crashing later.  */
          define_label (location, DECL_NAME (label));
        }
-      else if (!TREE_USED (label))
-       warning (OPT_Wunused_label, "label %q+D defined but not used", label);
+      else 
+       warn_for_unused_label (label);
     }
 
   SET_IDENTIFIER_LABEL_VALUE (DECL_NAME (label), old_value);
     }
 
   SET_IDENTIFIER_LABEL_VALUE (DECL_NAME (label), old_value);