shithub: scc

Download patch

ref: 67b76eed613de026a4b40fe5ff06aee8834500ed
parent: 65d393be241273b385ef13c463cd4ada5aa74e62
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Sun Jan 24 03:35:41 EST 2016

Do not recover in "incorrect preprocessor directive"

--- a/cc1/cpp.c
+++ b/cc1/cpp.c
@@ -713,8 +713,10 @@
 
 	for (bp = clauses; bp->token && bp->token != yytoken; ++bp)
 		/* nothing */;
-	if (!bp->token)
-		error("incorrect preprocessor directive");
+	if (!bp->token) {
+		errorp("incorrect preprocessor directive");
+		goto error;
+	}
 
 	pushctx();              /* create a new context to avoid polish */
 	(*bp->fun)();           /* the current context, and to get all  */
@@ -723,6 +725,7 @@
 	if (yytoken != EOFTOK && !cppoff)
 		errorp("trailing characters after preprocessor directive");
 
+error:
 	disexpand = 0;
 	lexmode = CCMODE;
 	namespace = ns;