mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 02:59:33 +02:00
* Fixed r48650.
git-svn-id: trunk@48657 -
This commit is contained in:
parent
7f1aac8bd7
commit
afc80a84cf
@ -1367,6 +1367,16 @@ implementation
|
|||||||
if parasym.varspez in [vs_var,vs_out,vs_constref] then
|
if parasym.varspez in [vs_var,vs_out,vs_constref] then
|
||||||
set_unique(left);
|
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
|
case parasym.varspez of
|
||||||
vs_out :
|
vs_out :
|
||||||
begin
|
begin
|
||||||
@ -1392,16 +1402,6 @@ implementation
|
|||||||
else
|
else
|
||||||
make_not_regable(left,[ra_addr_regable])
|
make_not_regable(left,[ra_addr_regable])
|
||||||
end;
|
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
|
else
|
||||||
set_varstate(left,vs_read,[vsf_must_be_valid]);
|
set_varstate(left,vs_read,[vsf_must_be_valid]);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user