diff options
author | Nathan Sidwell <nathan@gcc.gnu.org> | 2016-10-15 11:08:10 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2016-10-15 11:08:10 +0000 |
commit | 64190f049ac8117b403b038ca35bc771132b6e73 (patch) | |
tree | 37bc21c8fd16ea5e3a0c78d472d5549b86a7ed15 /gcc/diagnostic.c | |
parent | 35d942444418606e75f2e65aa7708616c5233035 (diff) | |
download | gcc-64190f049ac8117b403b038ca35bc771132b6e73.zip gcc-64190f049ac8117b403b038ca35bc771132b6e73.tar.gz gcc-64190f049ac8117b403b038ca35bc771132b6e73.tar.bz2 |
revert: diagnostic.c (diagnostic_action_after_output): Remove max error handling here ....
Revert
* diagnostic.c (diagnostic_action_after_output): Remove max error
handling here ....
(diagnostic_report_diagnostic): ... do it here instead.
testsuite/
* c-c++-common/fmax-errors.c: Make sure note is emitted.
From-SVN: r241198
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r-- | gcc/diagnostic.c | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index 24aceec..2304e14 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -470,8 +470,18 @@ diagnostic_action_after_output (diagnostic_context *context, diagnostic_finish (context); exit (FATAL_EXIT_CODE); } - /* -fmax-error handling is just before the next diagnostic is - emitted. */ + if (context->max_errors != 0 + && ((unsigned) (diagnostic_kind_count (context, DK_ERROR) + + diagnostic_kind_count (context, DK_SORRY) + + diagnostic_kind_count (context, DK_WERROR)) + >= context->max_errors)) + { + fnotice (stderr, + "compilation terminated due to -fmax-errors=%u.\n", + context->max_errors); + diagnostic_finish (context); + exit (FATAL_EXIT_CODE); + } break; case DK_ICE: @@ -824,7 +834,9 @@ diagnostic_report_diagnostic (diagnostic_context *context, -Wno-error=*. */ if (context->warning_as_error_requested && diagnostic->kind == DK_WARNING) - diagnostic->kind = DK_ERROR; + { + diagnostic->kind = DK_ERROR; + } if (diagnostic->option_index && diagnostic->option_index != permissive_error_option (context)) @@ -880,25 +892,6 @@ diagnostic_report_diagnostic (diagnostic_context *context, return false; } - if (diagnostic->kind != DK_NOTE && context->max_errors) - { - /* Check, before emitting the diagnostic, whether we would - exceed the limit. This way we will emit notes relevant to - the final emitted error. */ - int count = (diagnostic_kind_count (context, DK_ERROR) - + diagnostic_kind_count (context, DK_SORRY) - + diagnostic_kind_count (context, DK_WERROR)); - - if ((unsigned) count >= context->max_errors) - { - fnotice (stderr, - "compilation terminated due to -fmax-errors=%u.\n", - context->max_errors); - diagnostic_finish (context); - exit (FATAL_EXIT_CODE); - } - } - context->lock++; if (diagnostic->kind == DK_ICE || diagnostic->kind == DK_ICE_NOBT) |