shithub: scc

Download patch

ref: e0eed9f03d22464740c57d5baea245791ef84f23
parent: b6847c53e54893f2f3808ff0582cb675c0497528
author: Roberto E. Vargas Caballero <[email protected]>
date: Tue May 26 05:36:06 EDT 2015

Do not reserve identifiers for cpp symbols

Preprocessor symbols are not going to be emited ever,
so it is not a good idea to reserve identifiers that
only are going to generate holes in the symbol table
of the backend.

--- a/cc1/symbol.c
+++ b/cc1/symbol.c
@@ -88,8 +88,8 @@
 	Symbol *sym;
 
 	sym = malloc(sizeof(*sym));
-	sym->ns = ns;
-	sym->id = (curctx) ? ++localcnt : ++globalcnt;
+	if ((sym->ns = ns) != NS_CPP)
+		sym->id = (curctx) ? ++localcnt : ++globalcnt;
 	sym->ctx = curctx;
 	sym->token = IDEN;
 	sym->flags = ISDEFINED;