OSDN Git Service

* cfgexpand.c (expand_debug_expr): Check for mismatched modes in
[pf3gnuchains/gcc-fork.git] / gcc / opts.c
index 5aa7c41..bd8d6ad 100644 (file)
@@ -1150,8 +1150,6 @@ decode_options (unsigned int argc, const char **argv)
   if (flag_wpa || flag_ltrans)
     {
       /* These passes are not WHOPR compatible yet.  */
-      flag_ipa_cp = 0;
-      flag_ipa_type_escape = 0;
       flag_ipa_pta = 0;
       flag_ipa_struct_reorg = 0;
     }
@@ -2450,6 +2448,20 @@ register_warning_as_error_callback (void (*callback) (int))
   warning_as_error_callback = callback;
 }
 
+
+/* Callback function, called when -Werror= enables a warning.  */
+
+static void (*warning_as_error_callback) (int) = NULL;
+
+/* Register a callback for enable_warning_as_error calls.  */
+
+void
+register_warning_as_error_callback (void (*callback) (int))
+{
+  gcc_assert (warning_as_error_callback == NULL || callback == NULL);
+  warning_as_error_callback = callback;
+}
+
 /* Enable a warning option as an error.  This is used by -Werror= and
    also by legacy Werror-implicit-function-declaration.  */
 
@@ -2477,8 +2489,8 @@ enable_warning_as_error (const char *arg, int value, unsigned int lang_mask)
          const struct cl_option * const option = cl_options + option_index;
 
          /* -Werror=foo implies -Wfoo.  */
-         if (option->var_type == CLVC_BOOLEAN)
-           handle_option (option_index, value, arg, lang_mask, (int)kind);
+         if (option->var_type == CLVC_BOOLEAN && option->flag_var)
+           *(int *) option->flag_var = 1;
 
          if (warning_as_error_callback)
            warning_as_error_callback (option_index);