Browse Source

* set symoptions for all implicit created parameters

git-svn-id: trunk@7321 -
peter 18 years ago
parent
commit
c831b2fb00
1 changed files with 6 additions and 0 deletions
  1. 6 0
      compiler/pdecsub.pas

+ 6 - 0
compiler/pdecsub.pas

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