diff --git a/tools/qfcc/source/dot_expr.c b/tools/qfcc/source/dot_expr.c index 664796915..a981c7bc0 100644 --- a/tools/qfcc/source/dot_expr.c +++ b/tools/qfcc/source/dot_expr.c @@ -590,6 +590,18 @@ print_swizzle (dstring_t *dstr, expr_t *e, int level, int id, expr_t *next) swizzle, e->line); } +static void +print_extend (dstring_t *dstr, expr_t *e, int level, int id, expr_t *next) +{ + int indent = level * 2 + 2; + ex_extend_t extend = e->e.extend; + + _print_expr (dstr, extend.src, level, id, next); + dasprintf (dstr, "%*se_%p -> \"e_%p\";\n", indent, "", e, extend.src); + dasprintf (dstr, "%*se_%p [label=\"extend %d\\n%d\"];\n", indent, "", e, + extend.extend, e->line); +} + static void _print_expr (dstring_t *dstr, expr_t *e, int level, int id, expr_t *next) { @@ -621,6 +633,7 @@ _print_expr (dstring_t *dstr, expr_t *e, int level, int id, expr_t *next) [ex_args] = print_args, [ex_horizontal] = print_horizontal, [ex_swizzle] = print_swizzle, + [ex_extend] = print_extend, }; int indent = level * 2 + 2;