aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@gcc.gnu.org>2016-10-15 11:08:10 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2016-10-15 11:08:10 +0000
commit64190f049ac8117b403b038ca35bc771132b6e73 (patch)
tree37bc21c8fd16ea5e3a0c78d472d5549b86a7ed15 /gcc
parent35d942444418606e75f2e65aa7708616c5233035 (diff)
downloadgcc-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')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/diagnostic.c37
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/c-c++-common/fmax-errors.c14
4 files changed, 17 insertions, 44 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a131bba..2cf3f94 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,9 +1,3 @@
-2016-10-14 Nathan Sidwell <nathan@acm.org>
-
- * diagnostic.c (diagnostic_action_after_output): Remove fatal
- and max error handling here ....
- (diagnostic_report_diagnostic): ... do it here instead.
-
2016-10-14 David Malcolm <dmalcolm@redhat.com>
* print-rtl-function.c (print_edge): Omit "(flags)" when none are
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)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0e3b399..849c6e4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,7 +1,3 @@
-2016-10-14 Nathan Sidwell <nathan@acm.org>
-
- * c-c++-common/fmax-errors.c: Add error with note.
-
2016-10-14 Jakub Jelinek <jakub@redhat.com>
PR middle-end/77959
diff --git a/gcc/testsuite/c-c++-common/fmax-errors.c b/gcc/testsuite/c-c++-common/fmax-errors.c
index b44e238..1ef78eb 100644
--- a/gcc/testsuite/c-c++-common/fmax-errors.c
+++ b/gcc/testsuite/c-c++-common/fmax-errors.c
@@ -1,21 +1,11 @@
/* PR c/44782 */
/* { dg-do compile } */
-/* { dg-options "-fmax-errors=3 -Wall" } */
+/* { dg-options "-fmax-errors=3" } */
void foo (unsigned int i, unsigned int j)
{
(i) (); /* { dg-error "" } */
(j) (); /* { dg-error "" } */
-
- i + j; /* { dg-warning "" } */
-
- (k) (); /* { dg-error "" } */
- /* Make sure we see the notes related to the final error we emit. */
- /* { dg-message "identifier" "" { target c } 12 } */
-
- /* Warnings after the final error should not appear. */
- i + j; /* no warning. */
-
+ (i+j) (); /* { dg-error "" } */
(i*j) (); /* no error here due to -fmax-errors */
-
} /* { dg-prune-output "compilation terminated" } */