From: gdr Date: Tue, 11 Jun 2002 23:11:34 +0000 (+0000) Subject: * objc/objc-act.c (warn_with_ivar): Adjust calls to X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a787dd05ab6a396e9a10603460ff8512df56bae6;p=thirdparty%2Fgcc.git * 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 * bad.c (ffebad_start_): Adjust calls to diagnostic_count_error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54532 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bdb2ab2cf770..cbf8cbd08be2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2002-06-12 Gabriel Dos Reis + + * 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 For PR java/6520: diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index 22f116a986fd..fd4462aedf05 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 bbc8e079ac59..c98b8e13b6e4 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 ecb8ff41c5ea..48fa9a0792ed 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,7 @@ +2002-06-12 Gabriel Dos Reis + + * bad.c (ffebad_start_): Adjust calls to diagnostic_count_error. + 2002-06-04 Gabriel Dos Reis * bad.c (ffebad_start_): Adjust call to count_error. diff --git a/gcc/f/bad.c b/gcc/f/bad.c index e30101f1e4ae..21fa4871d748 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 cc4f67b29a5d..c6b9d5ff4ef6 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);