commit 7961958fd5f94b21d4c1c136d064bedb337303a4
Author:     Roberto E. Vargas Caballero <[email protected]>
AuthorDate: Sun Feb 19 08:42:04 2017 +0100
Commit:     Roberto E. Vargas Caballero <[email protected]>
CommitDate: Sun Feb 19 08:42:04 2017 +0100

    [cc1] Pass table  as parameter to dumpstab()
    
    This function can be used for debugging the cpp and lexcial tables.

diff --git a/cc1/cc1.h b/cc1/cc1.h
index a5ad280..ad476f1 100644
--- a/cc1/cc1.h
+++ b/cc1/cc1.h
@@ -389,7 +389,7 @@ extern void typesize(Type *tp);
 extern void flushtypes(void);
 
 /* symbol.c */
-extern void dumpstab(char *msg);
+extern void dumpstab(Symbol **tbl, char *msg);
 extern Symbol *lookup(int ns, char *name, int alloc);
 extern Symbol *nextsym(Symbol *sym, int ns);
 extern Symbol *install(int ns, Symbol *sym);
diff --git a/cc1/symbol.c b/cc1/symbol.c
index 3d4e21c..6953db8 100644
--- a/cc1/symbol.c
+++ b/cc1/symbol.c
@@ -20,12 +20,12 @@ static Symbol *htabcpp[NR_SYM_HASH];
 
 #ifndef NDEBUG
 void
-dumpstab(char *msg)
+dumpstab(Symbol **tbl, char *msg)
 {
        Symbol **bp, *sym;
 
        fprintf(stderr, "Symbol Table dump at ctx=%u\n%s\n", curctx, msg);
-       for (bp = htab; bp < &htab[NR_SYM_HASH]; ++bp) {
+       for (bp = tbl; bp < &tbl[NR_SYM_HASH]; ++bp) {
                if (*bp == NULL)
                        continue;
                fprintf(stderr, "%d", (int) (bp - htab));
@@ -40,6 +40,12 @@ dumpstab(char *msg)
                        sym->ns, sym->ctx,
                        (sym->name) ? sym->name : "", (void *) sym);
        }
+       fputs("\nlabels:", stderr);
+       for (sym = labels; sym; sym = sym->next) {
+               fprintf(stderr, "->[%d,%d:'%s'=%p]",
+                       sym->ns, sym->ctx,
+                       (sym->name) ? sym->name : "", (void *) sym);
+       }
        putc('\n', stderr);
 }
 #endif

Reply via email to