mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 19:05:54 +02:00
* don't include vo_has_local_copy for open array/array of const
This commit is contained in:
parent
a15404675d
commit
eee2002780
@ -1748,9 +1748,14 @@ const
|
|||||||
internalerror(200304232);
|
internalerror(200304232);
|
||||||
{ connect parasym to paraitem }
|
{ connect parasym to paraitem }
|
||||||
tvarsym(currpara.parasym).paraitem:=currpara;
|
tvarsym(currpara.parasym).paraitem:=currpara;
|
||||||
{ Need a local copy? }
|
{ We need a local copy for a value parameter when only the
|
||||||
|
address is pushed. Open arrays and Array of Const are
|
||||||
|
an exception because they are allocated at runtime and the
|
||||||
|
address that is pushed is patched }
|
||||||
if (currpara.paratyp=vs_value) and
|
if (currpara.paratyp=vs_value) and
|
||||||
paramanager.push_addr_param(currpara.paratyp,currpara.paratype.def,pd.proccalloption) then
|
paramanager.push_addr_param(currpara.paratyp,currpara.paratype.def,pd.proccalloption) and
|
||||||
|
not(is_open_array(currpara.paratype.def) or
|
||||||
|
is_array_of_const(currpara.paratype.def)) then
|
||||||
include(tvarsym(currpara.parasym).varoptions,vo_has_local_copy);
|
include(tvarsym(currpara.parasym).varoptions,vo_has_local_copy);
|
||||||
currpara:=tparaitem(currpara.next);
|
currpara:=tparaitem(currpara.next);
|
||||||
end;
|
end;
|
||||||
@ -2112,7 +2117,10 @@ const
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.136 2003-09-23 20:36:47 peter
|
Revision 1.137 2003-09-25 21:24:09 peter
|
||||||
|
* don't include vo_has_local_copy for open array/array of const
|
||||||
|
|
||||||
|
Revision 1.136 2003/09/23 20:36:47 peter
|
||||||
* remove obsolete code
|
* remove obsolete code
|
||||||
|
|
||||||
Revision 1.135 2003/09/23 17:56:05 peter
|
Revision 1.135 2003/09/23 17:56:05 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user