: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 ;).
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)