c-opts.c (c_common_handle_option): <case OPT_Werror> set global_dc->warning_as_error_...
authorGabriel Dos Reis <gdr@integrable-solutions.net>
Mon, 30 Aug 2004 04:48:34 +0000 (04:48 +0000)
committerGabriel Dos Reis <gdr@gcc.gnu.org>
Mon, 30 Aug 2004 04:48:34 +0000 (04:48 +0000)
        * c-opts.c (c_common_handle_option): <case OPT_Werror> set
        global_dc->warning_as_error_requested.
        * diagnostic.c (diagnostic_initialize): Tidy.
        * diagnostic.h (diagnostic_context::x_data): Remove
        (diagnostic_context::issue_warnings_are_errors_message): Rename
        from warnings_are_errors_message.
        (diagnostic_context::warning_as_error_requested): New.

From-SVN: r86750

gcc/ChangeLog
gcc/c-opts.c
gcc/diagnostic.c
gcc/diagnostic.h

index 64ec150d6435b2ec63e38895cb42aa228f4c4972..a9b6627340bc25c01a1e539fc4f97f8d4be9a79c 100644 (file)
@@ -1,3 +1,14 @@
+2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       PR c++/15378
+       * c-opts.c (c_common_handle_option): <case OPT_Werror> set
+       global_dc->warning_as_error_requested.
+       * diagnostic.c (diagnostic_initialize): Tidy.
+       * diagnostic.h (diagnostic_context::x_data): Remove
+       (diagnostic_context::issue_warnings_are_errors_message): Rename
+       from warnings_are_errors_message.
+       (diagnostic_context::warning_as_error_requested): New.
+
 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
 
        * sched-deps.c (get_condition): Fix breakage in previous patch.
index 31bbb48d9b05feda9d870ec2de0d97fbc254c899..c16bebe5c385fe26d32d9b18f144a5384de84922 100644 (file)
@@ -420,6 +420,7 @@ c_common_handle_option (size_t scode, const char *arg, int value)
 
     case OPT_Werror:
       cpp_opts->warnings_are_errors = value;
+      global_dc->warning_as_error_requested = value;
       break;
 
     case OPT_Werror_implicit_function_declaration:
index db4c8fec4da63e2060bdfa709838f997fac16ab1..4fca486d9413a60361ecf6d82209a4a1df8809de 100644 (file)
@@ -107,7 +107,8 @@ diagnostic_initialize (diagnostic_context *context)
   context->printer->prefixing_rule = DIAGNOSTICS_SHOW_PREFIX_ONCE;
 
   memset (context->diagnostic_count, 0, sizeof context->diagnostic_count);
-  context->warnings_are_errors_message = warnings_are_errors;
+  context->issue_warnings_are_errors_message = true;
+  context->warning_as_error_requested = false;
   context->abort_on_error = false;
   context->internal_error = NULL;
   diagnostic_starter (context) = default_diagnostic_starter;
@@ -115,7 +116,6 @@ diagnostic_initialize (diagnostic_context *context)
   context->last_module = 0;
   context->last_function = NULL;
   context->lock = 0;
-  context->x_data = NULL;
 }
 
 /* Returns true if the next format specifier in TEXT is a format specifier
@@ -226,17 +226,16 @@ diagnostic_count_diagnostic (diagnostic_context *context,
       if (!diagnostic_report_warnings_p ())
         return false;
 
-      if (!warnings_are_errors)
+      if (!context->warning_as_error_requested)
         {
           ++diagnostic_kind_count (context, DK_WARNING);
           break;
         }
-
-      if (context->warnings_are_errors_message)
+      else if (context->issue_warnings_are_errors_message)
         {
          pp_verbatim (context->printer,
                        "%s: warnings being treated as errors\n", progname);
-          context->warnings_are_errors_message = false;
+          context->issue_warnings_are_errors_message = false;
         }
 
       /* And fall through.  */
index 782f50280251e64aa5b31da7009e613f810e029b..cc0a911d8f91f03661e8e9ae26e5ce7f5207cbcb 100644 (file)
@@ -65,7 +65,10 @@ struct diagnostic_context
 
   /* True if we should display the "warnings are being tread as error"
      message, usually displayed once per compiler run.  */
-  bool warnings_are_errors_message;
+  bool issue_warnings_are_errors_message;
+  
+  /* True if it has been requested that warnings be treated as errors.  */
+  bool warning_as_error_requested;
 
   /* True if we should raise a SIGABRT on errors.  */
   bool abort_on_error;
@@ -94,9 +97,6 @@ struct diagnostic_context
   int last_module;
 
   int lock;
-  
-  /* Hook for front-end extensions.  */
-  void *x_data;
 };
 
 /* Client supplied function to announce a diagnostic.  */