From 48821f379f083a9a2d0a92acdb4df99f0e48965e Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Wed, 12 Dec 2012 12:55:17 +0900 Subject: [PATCH] Set edges/live for addressed variables. This fixes (again:P) the messup with .super. --- tools/qfcc/source/dags.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/qfcc/source/dags.c b/tools/qfcc/source/dags.c index 801bc5a83..491bae60d 100644 --- a/tools/qfcc/source/dags.c +++ b/tools/qfcc/source/dags.c @@ -339,6 +339,11 @@ dagnode_set_edges (dagnode_t *n) operand_t *op = child->label->op; if (node != child && node != n) set_add (node->edges, n->number); + if (op->op_type == op_value + && op->o.value->type == ev_pointer + && op->o.value->v.pointer.def) + def_visit_all (op->o.value->v.pointer.def, 1, + dagnode_set_edges_visit, n); if (op->op_type == op_def && (op->o.def->alias || op->o.def->alias_defs)) def_visit_all (op->o.def, 1, dagnode_set_edges_visit, n);