* don't include vo_has_local_copy for open array/array of const

This commit is contained in:
peter 2003-09-25 21:24:09 +00:00
parent a15404675d
commit eee2002780

View File

@ -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