ref: b49ee206468a789cd58b73c1012f4eab381bbb63
parent: 5ac24b9b6ee631848b5a2cc893ba7381ccf9c87f
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Thu Sep 17 08:59:43 EDT 2015
Close stdout in error Printing ???? is a non sense because the backend must check for this sequence, and it means a low level read routine is needed, but a better approach can be close the output stream.
--- a/cc1/error.c
+++ b/cc1/error.c
@@ -26,7 +26,7 @@
if (flag < 0) {
if (!failure) {
failure = 1;
- puts("????");
+ fclose(stdout);
}
failure = 1;
if (nerrors++ == MAXERRNUM) {
--- a/cc1/ir.md
+++ b/cc1/ir.md
@@ -10,7 +10,7 @@
and fields in statements are separated by tabulators. Declaration
statements begin in column 0, meanwhile expressions and control
flow begin with a tabulator. When the front end detects an error
-it emits ???? and stop of emitting anything else.
+it closes the output stream.
## Types ##