mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 15:09:20 +02:00
* set symoptions for all implicit created parameters
git-svn-id: trunk@7321 -
This commit is contained in:
parent
4579c242df
commit
c831b2fb00
@ -108,6 +108,7 @@ implementation
|
|||||||
paranr:=paranr_result;
|
paranr:=paranr_result;
|
||||||
{ Generate result variable accessing function result }
|
{ Generate result variable accessing function result }
|
||||||
vs:=tparavarsym.create('$result',paranr,vs_var,pd.returndef,[vo_is_funcret,vo_is_hidden_para]);
|
vs:=tparavarsym.create('$result',paranr,vs_var,pd.returndef,[vo_is_funcret,vo_is_hidden_para]);
|
||||||
|
vs.symoptions:=[sp_public];
|
||||||
pd.parast.insert(vs);
|
pd.parast.insert(vs);
|
||||||
{ Store the this symbol as funcretsym for procedures }
|
{ Store the this symbol as funcretsym for procedures }
|
||||||
if pd.typ=procdef then
|
if pd.typ=procdef then
|
||||||
@ -135,6 +136,7 @@ implementation
|
|||||||
vs:=tparavarsym.create('$parentfp',paranr_parentfp,vs_value
|
vs:=tparavarsym.create('$parentfp',paranr_parentfp,vs_value
|
||||||
,voidpointertype,[vo_is_parentfp,vo_is_hidden_para]);
|
,voidpointertype,[vo_is_parentfp,vo_is_hidden_para]);
|
||||||
vs.varregable:=vr_none;
|
vs.varregable:=vr_none;
|
||||||
|
vs.symoptions:=[sp_public];
|
||||||
pd.parast.insert(vs);
|
pd.parast.insert(vs);
|
||||||
|
|
||||||
current_tokenpos:=storepos;
|
current_tokenpos:=storepos;
|
||||||
@ -154,6 +156,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
{ Generate self variable }
|
{ Generate self variable }
|
||||||
vs:=tparavarsym.create('$self',paranr_self,vs_value,voidpointertype,[vo_is_self,vo_is_hidden_para]);
|
vs:=tparavarsym.create('$self',paranr_self,vs_value,voidpointertype,[vo_is_self,vo_is_hidden_para]);
|
||||||
|
vs.symoptions:=[sp_public];
|
||||||
pd.parast.insert(vs);
|
pd.parast.insert(vs);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -171,6 +174,7 @@ implementation
|
|||||||
{ can't use classrefdef as type because inheriting
|
{ can't use classrefdef as type because inheriting
|
||||||
will then always file because of a type mismatch }
|
will then always file because of a type mismatch }
|
||||||
vs:=tparavarsym.create('$vmt',paranr_vmt,vs_value,voidpointertype,[vo_is_vmt,vo_is_hidden_para]);
|
vs:=tparavarsym.create('$vmt',paranr_vmt,vs_value,voidpointertype,[vo_is_vmt,vo_is_hidden_para]);
|
||||||
|
vs.symoptions:=[sp_public];
|
||||||
pd.parast.insert(vs);
|
pd.parast.insert(vs);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -188,6 +192,7 @@ implementation
|
|||||||
hdef:=tprocdef(pd)._class;
|
hdef:=tprocdef(pd)._class;
|
||||||
end;
|
end;
|
||||||
vs:=tparavarsym.create('$self',paranr_self,vsp,hdef,[vo_is_self,vo_is_hidden_para]);
|
vs:=tparavarsym.create('$self',paranr_self,vsp,hdef,[vo_is_self,vo_is_hidden_para]);
|
||||||
|
vs.symoptions:=[sp_public];
|
||||||
pd.parast.insert(vs);
|
pd.parast.insert(vs);
|
||||||
|
|
||||||
current_tokenpos:=storepos;
|
current_tokenpos:=storepos;
|
||||||
@ -272,6 +277,7 @@ implementation
|
|||||||
if paramanager.push_high_param(varspez,vardef,pd.proccalloption) then
|
if paramanager.push_high_param(varspez,vardef,pd.proccalloption) then
|
||||||
begin
|
begin
|
||||||
hvs:=tparavarsym.create('$high'+name,paranr+1,vs_const,sinttype,[vo_is_high_para,vo_is_hidden_para]);
|
hvs:=tparavarsym.create('$high'+name,paranr+1,vs_const,sinttype,[vo_is_high_para,vo_is_hidden_para]);
|
||||||
|
hvs.symoptions:=[sp_public];
|
||||||
owner.insert(hvs);
|
owner.insert(hvs);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user