File tree Expand file tree Collapse file tree 1 file changed +8
-5
lines changed
Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -5323,20 +5323,23 @@ int codegen(Obj *prog, FILE *out) {
53235323 }
53245324 var->is_definition = false;
53255325 var->output = NULL;
5326+ continue;
53265327 }
5328+ if (var->alias_name)
5329+ var->is_definition = false;
53275330 }
53285331
53295332 for (Obj *var = prog; var; var = var->next) {
5330- if (var->is_definition) {
5331- if (!var->is_static || var->is_used)
5333+ if (!var->is_static || var->is_used) {
5334+ if (var->alias_name)
5335+ mark_alias_live(var->alias_name);
5336+ else if (var->is_definition)
53325337 mark_live(var);
5333- } else if (!var->is_static && var->alias_name) {
5334- mark_alias_live(var->alias_name);
53355338 }
53365339 }
53375340 for (Obj *var = prog; var; var = var->next) {
53385341 if (!var->is_definition) {
5339- if ((!var->is_static && var->alias_name) ||
5342+ if ((( !var->is_static || var->is_used) && var->alias_name) ||
53405343 (var->is_live && (var->is_weak || var->visibility))) {
53415344 if (var->is_weak)
53425345 Printftn(".weak \"%s\"", asm_name(var));
You can’t perform that action at this time.
0 commit comments