mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 12:25:59 +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
|
case location.loc of
|
||||||
LOC_REGISTER :
|
LOC_REGISTER :
|
||||||
|
begin
|
||||||
{$ifndef cpu64bitalu}
|
{$ifndef cpu64bitalu}
|
||||||
if location.size in [OS_64,OS_S64] then
|
if location.size in [OS_64,OS_S64] then
|
||||||
cg64.a_load64_reg_loc(current_asmdata.CurrAsmList,location.register64,funcretnode.location)
|
cg64.a_load64_reg_loc(current_asmdata.CurrAsmList,location.register64,funcretnode.location)
|
||||||
else
|
else
|
||||||
{$endif}
|
{$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:
|
LOC_REFERENCE:
|
||||||
begin
|
begin
|
||||||
case funcretnode.location.loc of
|
case funcretnode.location.loc of
|
||||||
@ -395,6 +398,7 @@ implementation
|
|||||||
else
|
else
|
||||||
internalerror(200802121);
|
internalerror(200802121);
|
||||||
end;
|
end;
|
||||||
|
location_freetemp(current_asmdata.CurrAsmList,location);
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
internalerror(200709085);
|
internalerror(200709085);
|
||||||
|
Loading…
Reference in New Issue
Block a user