[qfcc] Print children of uexpr and return expressions

It's possible I lost the child printing when creating the return
expressions, but dot diagrams are much more useful when they don't have
nodes with just pointer values.
This commit is contained in:
Bill Currie 2022-01-25 12:29:15 +09:00
parent fc73cfc1e0
commit a1acdb8951
1 changed files with 2 additions and 0 deletions

View File

@ -406,6 +406,7 @@ print_return (dstring_t *dstr, expr_t *e, int level, int id, expr_t *next)
int indent = level * 2 + 2; int indent = level * 2 + 2;
if (e->e.retrn.ret_val) { if (e->e.retrn.ret_val) {
_print_expr (dstr, e->e.retrn.ret_val, level, id, next);
dasprintf (dstr, "%*se_%p -> \"e_%p\";\n", indent, "", e, dasprintf (dstr, "%*se_%p -> \"e_%p\";\n", indent, "", e,
e->e.retrn.ret_val); e->e.retrn.ret_val);
} }
@ -418,6 +419,7 @@ print_uexpr (dstring_t *dstr, expr_t *e, int level, int id, expr_t *next)
{ {
int indent = level * 2 + 2; int indent = level * 2 + 2;
_print_expr (dstr, e->e.expr.e1, level, id, next);
dasprintf (dstr, "%*se_%p -> \"e_%p\";\n", indent, "", e, e->e.expr.e1); dasprintf (dstr, "%*se_%p -> \"e_%p\";\n", indent, "", e, e->e.expr.e1);
dasprintf (dstr, "%*se_%p [label=\"%s\\n%d\"];\n", indent, "", e, dasprintf (dstr, "%*se_%p [label=\"%s\\n%d\"];\n", indent, "", e,
get_op_string (e->e.expr.op), e->line); get_op_string (e->e.expr.op), e->line);