http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54687

--- Comment #2 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
Note that this is a repetitive but trivial task that consists mostly in
deleting code. Just take for example Wcompare-reals:

Index: gfortran.h
===================================================================
--- gfortran.h    (revision 209347)
+++ gfortran.h    (working copy)
@@ -2256,11 +2267,10 @@ typedef struct
   int warn_real_q_constant;
   int warn_unused_dummy_argument;
   int warn_zerotrip;
   int warn_realloc_lhs;
   int warn_realloc_lhs_all;
-  int warn_compare_reals;
   int warn_target_lifetime;
   int max_errors;

   int flag_all_intrinsics;
   int flag_default_double;
Index: lang.opt
===================================================================
--- lang.opt    (revision 209347)
+++ lang.opt    (working copy)
@@ -220,11 +220,11 @@ Fortran
 Wcharacter-truncation
 Fortran Warning
 Warn about truncated character expressions

 Wcompare-reals
-Fortran Warning
+Fortran Var(warn_compare_reals) Warning LangEnabledBy(Fortran,Wextra)
 Warn about equality comparisons involving REAL or COMPLEX expressions

 Wconversion
 Fortran Warning
 ; Documented in C
Index: resolve.c
===================================================================
--- resolve.c    (revision 209347)
+++ resolve.c    (working copy)
@@ -3566,11 +3566,11 @@ resolve_operator (gfc_expr *e)
       gfc_type_convert_binary (e, 1);

       e->ts.type = BT_LOGICAL;
       e->ts.kind = gfc_default_logical_kind;

-      if (gfc_option.warn_compare_reals)
+      if (warn_compare_reals)
         {
           gfc_intrinsic_op op = e->value.op.op;

           /* Type conversion has made sure that the types of op1 and op2
          agree, so it is only necessary to check the first one.   */
Index: options.c
===================================================================
--- options.c    (revision 209347)
+++ options.c    (working copy)
@@ -110,11 +110,10 @@ gfc_init_options (unsigned int decoded_o
   gfc_option.warn_real_q_constant = 0;
   gfc_option.warn_unused_dummy_argument = 0;
   gfc_option.warn_zerotrip = 0;
   gfc_option.warn_realloc_lhs = 0;
   gfc_option.warn_realloc_lhs_all = 0;
-  gfc_option.warn_compare_reals = 0;
   gfc_option.warn_target_lifetime = 0;
   gfc_option.max_errors = 25;

   gfc_option.flag_all_intrinsics = 0;
   gfc_option.flag_default_double = 0;
@@ -470,11 +461,5 @@
-/* Set the options for -Wextra.  */
-
-static void
-set_Wextra (int setting)
-{
-  gfc_option.warn_compare_reals = setting;
 }

 static void
 gfc_handle_module_path_options (const char *arg)
 {
@@ -659,31 +632,18 @@ gfc_handle_option (size_t scode, const c

     case OPT_Wcharacter_truncation:
       gfc_option.warn_character_truncation = value;
       break;

-    case OPT_Wcompare_reals:
-      gfc_option.warn_compare_reals = value;
-      break;
-
     case OPT_Wconversion:
       gfc_option.gfc_warn_conversion = value;
       break;

     case OPT_Wconversion_extra:
       gfc_option.warn_conversion_extra = value;
       break;

-    case OPT_Wextra:
-      handle_generated_option (&global_options, &global_options_set,
-                   OPT_Wunused_parameter, NULL, value,
-                   gfc_option_lang_mask (), kind, loc,
-                   handlers, global_dc);
-      set_Wextra (value);
-
-      break;
-
     case OPT_Wfunction_elimination:
       gfc_option.warn_function_elimination = value;
       break;

     case OPT_Wimplicit_interface:

Reply via email to