[Patch, fortran] PR24767 -Wno-unused-label does not work properly

Bernhard Fischer rep.nop@aon.at
Fri Oct 13 12:25:00 GMT 2006


:ADDPATCH fortran:

-Wno-unused-label from common.opt should be used instead of
-Wno-unused-labels from fortran/lang.opt.

Passing -Wall -Wno-unused-label to gfortran did not suppress the warning
about an unused label since gfortran crafted it's own flag called
-W(no-)unused-labels instead of using the commonly used flag in
singular.

This patch removes the fortran specific flag in favour of using the
common flag.

I'll try to find the time to regtest this patch during the weekend, but
i don't believe it can cause any harm (fwiw ;).

thanks,

fortran/ChangeLog

2006-10-13  Bernhard Fischer  <aldot@gcc.gnu.org>

        PR fortran/24767
        * lang.opt (Wunused-labels): Remove.
        * options.c: Remove references to gfc_option.warn_unused_labels.
        * gfortran.h: Remove variable warn_unused_labels.               
        * resolve.c (warn_unused_fortran_label) : Use warn_unused_label
        instead of gfc_option.warn_unused_labels.
        * invoke.texi: Remove documentation of -Wunused-labels.

testsuite/ChangeLog

2006-10-13  Bernhard Fischer  <aldot@gcc.gnu.org>

        PR fortran/24767
        * gfortran.dg/label_4.f90: Adjust warning flag.

-------------- next part --------------
diff -rup gcc-4.2.before_pr24767/gcc/fortran/gfortran.h gcc-4.2/gcc/fortran/gfortran.h
--- gcc-4.2.before_pr24767/gcc/fortran/gfortran.h	2006-10-12 18:43:35.000000000 +0200
+++ gcc-4.2/gcc/fortran/gfortran.h	2006-10-13 11:00:58.000000000 +0200
@@ -1633,7 +1633,6 @@ typedef struct
   int warn_surprising;
   int warn_tabs;
   int warn_underflow;
-  int warn_unused_labels;
 
   int flag_all_intrinsics;
   int flag_default_double;
diff -rup gcc-4.2.before_pr24767/gcc/fortran/invoke.texi gcc-4.2/gcc/fortran/invoke.texi
--- gcc-4.2.before_pr24767/gcc/fortran/invoke.texi	2006-10-12 18:43:35.000000000 +0200
+++ gcc-4.2/gcc/fortran/invoke.texi	2006-10-13 11:12:23.000000000 +0200
@@ -130,7 +130,7 @@ by type.  Explanations are in the follow
 -fsyntax-only  -pedantic  -pedantic-errors @gol
 -w  -Wall  -Waliasing -Wampersand -Wconversion -Wimplicit-interface @gol
 -Wtabs -Wnonstd-intrinsics -Wsurprising -Wunderflow @gol
--Wunused-labels -Wline-truncation -W}
+-Wline-truncation -W}
 
 @item Debugging Options
 @xref{Debugging Options,,Options for Debugging Your Program or GCC}.
@@ -403,7 +403,7 @@ Inhibit all warning messages.
 @cindex warnings, all
 Enables commonly used warning options pertaining to usage that
 we recommend avoiding and that we believe are easy to avoid.
-This currently includes @option{-Wunused-labels}, @option{-Waliasing},
+This currently includes @option{-Waliasing},
 @option{-Wampersand}, @option{-Wsurprising}, @option{-Wnonstd-intrinsic},
 @option{-Wno-tabs}, and @option{-Wline-truncation}.
 
@@ -501,14 +501,6 @@ Produce a warning when numerical constan
 encountered, which yield an UNDERFLOW during compilation.
 
 
-@cindex -Wunused-labels option
-@cindex options, -Wunused-labels
-@item -Wunused-labels
-@cindex unused labels
-@cindex labels, unused
-Warn whenever a label is defined but never referenced.
-
-
 @cindex -Werror
 @cindex options, -Werror
 @item -Werror
diff -rup gcc-4.2.before_pr24767/gcc/fortran/lang.opt gcc-4.2/gcc/fortran/lang.opt
--- gcc-4.2.before_pr24767/gcc/fortran/lang.opt	2006-06-19 10:17:48.000000000 +0200
+++ gcc-4.2/gcc/fortran/lang.opt	2006-10-13 09:21:04.000000000 +0200
@@ -73,10 +73,6 @@ Wunderflow
 Fortran
 Warn about underflow of numerical constant expressions
 
-Wunused-labels
-Fortran
-Warn when a label is unused
-
 fall-intrinsics
 Fortran RejectNegative
 All intrinsics procedures are available regardless of selected standard
diff -rup gcc-4.2.before_pr24767/gcc/fortran/options.c gcc-4.2/gcc/fortran/options.c
--- gcc-4.2.before_pr24767/gcc/fortran/options.c	2006-10-12 18:43:36.000000000 +0200
+++ gcc-4.2/gcc/fortran/options.c	2006-10-13 09:24:00.000000000 +0200
@@ -61,7 +61,6 @@ gfc_init_options (unsigned int argc ATTR
   gfc_option.warn_surprising = 0;
   gfc_option.warn_tabs = 1;
   gfc_option.warn_underflow = 1;
-  gfc_option.warn_unused_labels = 0;
 
   gfc_option.flag_all_intrinsics = 0;
   gfc_option.flag_default_double = 0;
@@ -303,8 +302,7 @@ set_Wall (void)
   gfc_option.warn_surprising = 1;
   gfc_option.warn_tabs = 0;
   gfc_option.warn_underflow = 1;
-  gfc_option.warn_unused_labels = 1;
- 
+
   set_Wunused (1);
   warn_return_type = 1;
   warn_switch = 1;
@@ -428,10 +426,6 @@ gfc_handle_option (size_t scode, const c
       gfc_option.warn_underflow = value;
       break;
 
-    case OPT_Wunused_labels:
-      gfc_option.warn_unused_labels = value;
-      break;
-
     case OPT_fall_intrinsics:
       gfc_option.flag_all_intrinsics = 1;
       break;
diff -rup gcc-4.2.before_pr24767/gcc/fortran/resolve.c gcc-4.2/gcc/fortran/resolve.c
--- gcc-4.2.before_pr24767/gcc/fortran/resolve.c	2006-10-12 18:43:35.000000000 +0200
+++ gcc-4.2/gcc/fortran/resolve.c	2006-10-13 11:03:20.000000000 +0200
@@ -6877,7 +6877,7 @@ resolve_types (gfc_namespace * ns)
     resolve_equivalence (eq);
 
   /* Warn about unused labels.  */
-  if (gfc_option.warn_unused_labels)
+  if (warn_unused_label)
     warn_unused_fortran_label (ns->st_labels);
 
   gfc_resolve_uops (ns->uop_root);
diff -rup gcc-4.2.before_pr24767/gcc/testsuite/gfortran.dg/label_4.f90 gcc-4.2/gcc/testsuite/gfortran.dg/label_4.f90
--- gcc-4.2.before_pr24767/gcc/testsuite/gfortran.dg/label_4.f90	2006-02-15 09:25:01.000000000 +0100
+++ gcc-4.2/gcc/testsuite/gfortran.dg/label_4.f90	2006-10-13 11:05:49.000000000 +0200
@@ -1,5 +1,5 @@
 ! { dg-do compile }
-! { dg-options "-Wunused-labels" }
+! { dg-options "-Wunused-label" }
 ! PR 26277
 ! We used to give an incorect warning about label 99 not being referenced
   open(unit=12,err=99)


More information about the Fortran mailing list