diff --git a/tools/qfcc/source/def.c b/tools/qfcc/source/def.c index ebe8bf7b5..82f61561a 100644 --- a/tools/qfcc/source/def.c +++ b/tools/qfcc/source/def.c @@ -173,6 +173,7 @@ alias_def (def_t *def, type_t *type, int offset) return alias; } ALLOC (16384, def_t, defs, alias); + alias->name = save_string (va ("[%s:%d]", def->name, offset)); alias->return_addr = __builtin_return_address (0); alias->offset = offset; alias->offset_reloc = 1; diff --git a/tools/qfcc/source/statements.c b/tools/qfcc/source/statements.c index 37ead9ccf..1ace006aa 100644 --- a/tools/qfcc/source/statements.c +++ b/tools/qfcc/source/statements.c @@ -122,8 +122,10 @@ operand_string (operand_t *op) case op_label: return op->o.label->name; case op_temp: - while (op->o.tempop.alias) - op = op->o.tempop.alias; + if (op->o.tempop.alias) + return va ("", op, op->o.tempop.users, + op->o.tempop.alias, + op->o.tempop.alias->o.tempop.users); return va ("", op, op->o.tempop.users); } return ("??");