* Fixed r48650.

git-svn-id: trunk@48657 -
This commit is contained in:
yury 2021-02-12 11:26:37 +00:00
parent 7f1aac8bd7
commit afc80a84cf

View File

@ -1367,6 +1367,16 @@ implementation
if parasym.varspez in [vs_var,vs_out,vs_constref] then
set_unique(left);
if (parasym.varspez=vs_const) and (parasym.vardef.typ=formaldef) then
begin
{ compilerprocs never capture the address of their
parameters }
if not(po_compilerproc in aktcallnode.procdefinition.procoptions) then
make_not_regable(left,[ra_addr_regable,ra_addr_taken])
else
make_not_regable(left,[ra_addr_regable])
end
else
case parasym.varspez of
vs_out :
begin
@ -1392,16 +1402,6 @@ implementation
else
make_not_regable(left,[ra_addr_regable])
end;
vs_const:
if parasym.vardef.typ=formaldef then
begin
{ compilerprocs never capture the address of their
parameters }
if not(po_compilerproc in aktcallnode.procdefinition.procoptions) then
make_not_regable(left,[ra_addr_regable,ra_addr_taken])
else
make_not_regable(left,[ra_addr_regable])
end;
else
set_varstate(left,vs_read,[vsf_must_be_valid]);
end;