mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 20:59:42 +02:00
* free function return location if the callnode immediately copies it to a
different funcretnode location git-svn-id: trunk@16839 -
This commit is contained in:
parent
d7010c46e4
commit
be2bb0b2e1
@ -379,12 +379,15 @@ implementation
|
||||
|
||||
case location.loc of
|
||||
LOC_REGISTER :
|
||||
begin
|
||||
{$ifndef cpu64bitalu}
|
||||
if location.size in [OS_64,OS_S64] then
|
||||
cg64.a_load64_reg_loc(current_asmdata.CurrAsmList,location.register64,funcretnode.location)
|
||||
else
|
||||
if location.size in [OS_64,OS_S64] then
|
||||
cg64.a_load64_reg_loc(current_asmdata.CurrAsmList,location.register64,funcretnode.location)
|
||||
else
|
||||
{$endif}
|
||||
cg.a_load_reg_loc(current_asmdata.CurrAsmList,location.size,location.register,funcretnode.location);
|
||||
cg.a_load_reg_loc(current_asmdata.CurrAsmList,location.size,location.register,funcretnode.location);
|
||||
location_free(current_asmdata.CurrAsmList,location);
|
||||
end;
|
||||
LOC_REFERENCE:
|
||||
begin
|
||||
case funcretnode.location.loc of
|
||||
@ -395,6 +398,7 @@ implementation
|
||||
else
|
||||
internalerror(200802121);
|
||||
end;
|
||||
location_freetemp(current_asmdata.CurrAsmList,location);
|
||||
end;
|
||||
else
|
||||
internalerror(200709085);
|
||||
|
Loading…
Reference in New Issue
Block a user