summaryrefslogtreecommitdiff
path: root/gcc/genoutput.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/genoutput.c')
-rw-r--r--gcc/genoutput.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
index 336cd85c76e..eea252aed00 100644
--- a/gcc/genoutput.c
+++ b/gcc/genoutput.c
@@ -165,6 +165,11 @@ struct data *end_of_insn_data;
for this machine description. */
int have_constraints;
+
+/* Nonzero if some error has occurred. We will make all errors fatal, but
+ might as well continue until we see all of them. */
+
+static int have_error;
static void
output_prologue ()
@@ -919,6 +924,8 @@ error (s, a1, a2)
fprintf (stderr, "genoutput: ");
fprintf (stderr, s, a1, a2);
fprintf (stderr, "\n");
+
+ have_error = 1;
}
int
@@ -973,7 +980,9 @@ main (argc, argv)
output_epilogue ();
fflush (stdout);
- exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
+ exit (ferror (stdout) != 0 || have_error
+ ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
+
/* NOTREACHED */
return 0;
}