Browse Source

* make the hidden high parameter for short strings a byte for 8 bit CPUs

florian 2 years ago
parent
commit
e142953c6d
1 changed files with 6 additions and 1 deletions
  1. 6 1
      compiler/pparautl.pas

+ 6 - 1
compiler/pparautl.pas

@@ -415,7 +415,12 @@ implementation
            { needs high parameter ? }
            { needs high parameter ? }
            if paramanager.push_high_param(varspez,vardef,pd.proccalloption) then
            if paramanager.push_high_param(varspez,vardef,pd.proccalloption) then
              begin
              begin
-               hvs:=cparavarsym.create('$high'+name,paranr+1,vs_const,sizesinttype,[vo_is_high_para,vo_is_hidden_para]);
+{$ifdef cpu8bitalu}
+               if is_shortstring(vardef) then
+                 hvs:=cparavarsym.create('$high'+name,paranr+1,vs_const,aluuinttype,[vo_is_high_para,vo_is_hidden_para])
+               else
+{$endif cpu8bitalu}
+                 hvs:=cparavarsym.create('$high'+name,paranr+1,vs_const,sizesinttype,[vo_is_high_para,vo_is_hidden_para]);
                hvs.symoptions:=[];
                hvs.symoptions:=[];
                owner.insertsym(hvs);
                owner.insertsym(hvs);
                { don't place to register if it will be accessed from implicit finally block }
                { don't place to register if it will be accessed from implicit finally block }