|
@@ -405,8 +405,10 @@ interface
|
|
location_reset_ref(tempinfo^.location,LOC_REFERENCE,def_cgsize(tempinfo^.typedef),0);
|
|
location_reset_ref(tempinfo^.location,LOC_REFERENCE,def_cgsize(tempinfo^.typedef),0);
|
|
tg.gethltemptyped(current_asmdata.CurrAsmList,tempinfo^.typedef,tempinfo^.temptype,tempinfo^.location.reference);
|
|
tg.gethltemptyped(current_asmdata.CurrAsmList,tempinfo^.typedef,tempinfo^.temptype,tempinfo^.location.reference);
|
|
{ the temp could have been used previously either because the memory location was reused or
|
|
{ the temp could have been used previously either because the memory location was reused or
|
|
- because we're in a loop }
|
|
|
|
- hlcg.g_finalize(current_asmdata.CurrAsmList,tempinfo^.typedef,tempinfo^.location.reference);
|
|
|
|
|
|
+ because we're in a loop. In case it's used as a function result, that doesn't matter
|
|
|
|
+ because it will be finalized when assigned to. }
|
|
|
|
+ if not(nf_is_funcret in flags) then
|
|
|
|
+ hlcg.g_finalize(current_asmdata.CurrAsmList,tempinfo^.typedef,tempinfo^.location.reference);
|
|
end
|
|
end
|
|
else if (ti_may_be_in_reg in tempinfo^.flags) then
|
|
else if (ti_may_be_in_reg in tempinfo^.flags) then
|
|
begin
|
|
begin
|