aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@codesourcery.com>2002-06-11 23:11:34 +0000
committerGabriel Dos Reis <gdr@gcc.gnu.org>2002-06-11 23:11:34 +0000
commit13f0d49cdfb507a8e369b86d1c5038a08635cee7 (patch)
tree78d7bd65c43f7bf23d766026f9d3611afa6983e8 /gcc
parent0db79a6b35fc77ec500206c7442457dcc401a0e1 (diff)
downloadgcc-13f0d49cdfb507a8e369b86d1c5038a08635cee7.zip
gcc-13f0d49cdfb507a8e369b86d1c5038a08635cee7.tar.gz
gcc-13f0d49cdfb507a8e369b86d1c5038a08635cee7.tar.bz2
objc-act.c (warn_with_ivar): Adjust calls to diagnostic_count_error.
* objc/objc-act.c (warn_with_ivar): Adjust calls to diagnostic_count_error. (warn_with_method): Likewise. * diagnostic.h (warnings_are_errors_message): New field of diagnostic_context. (diagnostic_count_error): Rename to diagnostic_count_diagnostic to match semantics. * diagnostic.c: Adjust calls to diagnostic_count_error through out. (diagnostic_count_diagnostic): Make aware of other kinds of diagnostics. (diagnostic_initialize): Initialize warnings_are_errors_message field. f/ 2002-06-12 Gabriel Dos Reis <gdr@codesourcery.com> * bad.c (ffebad_start_): Adjust calls to diagnostic_count_error. From-SVN: r54532
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/diagnostic.c48
-rw-r--r--gcc/diagnostic.h6
-rw-r--r--gcc/f/ChangeLog4
-rw-r--r--gcc/f/bad.c4
-rw-r--r--gcc/objc/objc-act.c4
6 files changed, 59 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bdb2ab2..cbf8cbd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,18 @@
+2002-06-12 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * objc/objc-act.c (warn_with_ivar): Adjust calls to
+ diagnostic_count_error.
+ (warn_with_method): Likewise.
+
+ * diagnostic.h (warnings_are_errors_message): New field of
+ diagnostic_context.
+ (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
+ match semantics.
+ * diagnostic.c: Adjust calls to diagnostic_count_error through out.
+ (diagnostic_count_diagnostic): Make aware of other kinds of
+ diagnostics.
+ (diagnostic_initialize): Initialize warnings_are_errors_message field.
+
2002-06-11 Tom Tromey <tromey@redhat.com>
For PR java/6520:
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index 22f116a..fd4462a 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -766,6 +766,7 @@ diagnostic_initialize (context)
diagnostic_starter (context) = default_diagnostic_starter;
diagnostic_finalizer (context) = default_diagnostic_finalizer;
+ context->warnings_are_errors_message = warnings_are_errors;
}
void
@@ -819,7 +820,7 @@ diagnostic_for_decl (diagnostic, decl)
if (global_dc->lock++)
error_recursion (global_dc);
- if (diagnostic_count_error (global_dc, diagnostic->kind))
+ if (diagnostic_count_diagnostic (global_dc, diagnostic->kind))
{
diagnostic_report_current_function (global_dc);
output_set_prefix
@@ -839,29 +840,42 @@ diagnostic_flush_buffer (context)
fflush (output_buffer_attached_stream (&context->buffer));
}
-/* Count an error or warning. Return true if the message should be
- printed. */
+/* Count a diagnostic. Return true if the message should be printed. */
bool
-diagnostic_count_error (context, kind)
+diagnostic_count_diagnostic (context, kind)
diagnostic_context *context;
diagnostic_t kind;
{
- if (kind == DK_WARNING && !diagnostic_report_warnings_p ())
- return false;
-
- if (kind == DK_WARNING && !warnings_are_errors)
- ++diagnostic_kind_count (context, DK_WARNING);
- else
+ switch (kind)
{
- static bool warning_message = false;
-
- if (kind == DK_WARNING && !warning_message)
- {
+ default:
+ abort();
+ break;
+
+ case DK_FATAL: case DK_ICE: case DK_SORRY:
+ case DK_ANACHRONISM: case DK_NOTE:
+ ++diagnostic_kind_count (context, kind);
+ break;
+
+ case DK_WARNING:
+ if (!diagnostic_report_warnings_p ())
+ return false;
+ else if (!warnings_are_errors)
+ {
+ ++diagnostic_kind_count (context, DK_WARNING);
+ break;
+ }
+ /* else fall through. */
+
+ case DK_ERROR:
+ if (kind == DK_WARNING && context->warnings_are_errors_message)
+ {
output_verbatim (&context->buffer,
"%s: warnings being treated as errors\n", progname);
- warning_message = true;
- }
+ context->warnings_are_errors_message = false;
+ }
++diagnostic_kind_count (context, DK_ERROR);
+ break;
}
return true;
@@ -1220,7 +1234,7 @@ diagnostic_report_diagnostic (context, diagnostic)
if (context->lock++)
error_recursion (context);
- if (diagnostic_count_error (context, diagnostic->kind))
+ if (diagnostic_count_diagnostic (context, diagnostic->kind))
{
(*diagnostic_starter (context)) (context, diagnostic);
output_format (&context->buffer, &diagnostic->message);
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index bbc8e07..c98b8e1 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -187,6 +187,10 @@ struct diagnostic_context
/* The number of times we have issued diagnostics. */
int diagnostic_count[DK_LAST_DIAGNOSTIC_KIND];
+ /* True if we should display the "warnings are being tread as error"
+ message, usually displayed once per compiler run. */
+ bool warnings_are_errors_message;
+
/* This function is called before any message is printed out. It is
responsible for preparing message prefix and such. For example, it
might say:
@@ -284,7 +288,7 @@ extern void diagnostic_initialize PARAMS ((diagnostic_context *));
extern void diagnostic_report_current_module PARAMS ((diagnostic_context *));
extern void diagnostic_report_current_function PARAMS ((diagnostic_context *));
extern void diagnostic_flush_buffer PARAMS ((diagnostic_context *));
-extern bool diagnostic_count_error PARAMS ((diagnostic_context *,
+extern bool diagnostic_count_diagnostic PARAMS ((diagnostic_context *,
diagnostic_t));
extern void diagnostic_report_diagnostic PARAMS ((diagnostic_context *,
diagnostic_info *));
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index ecb8ff4..48fa9a0 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,7 @@
+2002-06-12 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * bad.c (ffebad_start_): Adjust calls to diagnostic_count_error.
+
2002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
* bad.c (ffebad_start_): Adjust call to count_error.
diff --git a/gcc/f/bad.c b/gcc/f/bad.c
index e30101f..21fa4871 100644
--- a/gcc/f/bad.c
+++ b/gcc/f/bad.c
@@ -203,7 +203,7 @@ ffebad_start_ (bool lex_override, ffebad errnum, ffebadSeverity sev,
if ((ffebad_severity_ != FFEBAD_severityPEDANTIC)
|| !flag_pedantic_errors)
{
- if (!diagnostic_count_error (global_dc, DK_WARNING))
+ if (!diagnostic_count_diagnostic (global_dc, DK_WARNING))
{ /* User wants no warnings. */
ffebad_is_temp_inhibited_ = TRUE;
return FALSE;
@@ -215,7 +215,7 @@ ffebad_start_ (bool lex_override, ffebad errnum, ffebadSeverity sev,
case FFEBAD_severityWEIRD:
case FFEBAD_severitySEVERE:
case FFEBAD_severityDISASTER:
- diagnostic_count_error (global_dc, DK_ERROR);
+ diagnostic_count_diagnostic (global_dc, DK_ERROR);
break;
default:
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index cc4f67b..c6b9d5f 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -3416,7 +3416,7 @@ error_with_ivar (message, decl, rawdecl)
tree decl;
tree rawdecl;
{
- diagnostic_count_error (global_dc, DK_ERROR);
+ diagnostic_count_diagnostic (global_dc, DK_ERROR);
diagnostic_report_current_function (global_dc);
@@ -6895,7 +6895,7 @@ warn_with_method (message, mtype, method)
int mtype;
tree method;
{
- if (!diagnostic_count_error (global_dc, DK_WARNING))
+ if (!diagnostic_count_diagnostic (global_dc, DK_WARNING))
return;
diagnostic_report_current_function (global_dc);