commit 94ca1b27fc57c64bf0ee1dc95f1c58555aaf6e2a
parent 990dcf7fb41e4b4d050ffb6080ccf794922dd88d
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Mon, 1 Nov 2021 15:58:57 +0100
cc1: Improve prtree()
Prtree() is usually used as a debug mechanism. For this reason is
better if it can return the same parameter that it receives, because
using it in this way means that it can be used as a replacement of
functions that return a node pointer.
Diffstat:
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/cmd/cc/cc1/cc1.h b/src/cmd/cc/cc1/cc1.h
@@ -458,7 +458,7 @@ extern void setloc(char *fname, unsigned line);
#define accept(t) ((yytoken == (t)) ? next() : 0)
/* code.c */
-extern void prtree(char *s, Node *np);
+extern Node *prtree(char *s, Node *np);
extern void emit(int, void *);
extern Node *node(int op, Type *tp, Node *left, Node *rigth);
extern Node *varnode(Symbol *sym);
diff --git a/src/cmd/cc/cc1/code.c b/src/cmd/cc/cc1/code.c
@@ -164,14 +164,18 @@ emitnode(Node *np)
(*opcode[np->op])(np->op, np);
}
-void
+Node *
prtree(char *s, Node *np)
{
+ FILE *tmp = outfp;
+
outfp = stderr;
fprintf(outfp, "DBG prtree %s", s);
emitnode(np);
putc('\n', outfp);
- outfp = stdout;
+ outfp = tmp;
+
+ return np;
}
void