shithub: scc

Download patch

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 ##