[qfcc] Avoid defining whole temp via alias

Like defs, a partial write should not define the whole temp. Thus, copy
the "don't visit main" behavior recently added to def_visit_all. Fixes
missing ud-chains for component-by-component assignments to temporary
vectors.
This commit is contained in:
Bill Currie 2023-06-05 09:42:33 +09:00
parent 8f6e145257
commit 38fd09573f

View file

@ -452,8 +452,9 @@ tempop_visit_all (tempop_t *tempop, int overlap,
internal_error (top->expr, "temp alias of non-temp operand"); internal_error (top->expr, "temp alias of non-temp operand");
} }
tempop = &top->tempop; tempop = &top->tempop;
if ((ret = visit (tempop, data))) if (!(overlap & 4) && (ret = visit (tempop, data)))
return ret; return ret;
overlap &= ~4;
} else { } else {
overlap = 0; overlap = 0;
} }