Browse Source

fix wrong handling of var para for size bug #961

pierre 25 years ago
parent
commit
0822332888
1 changed files with 10 additions and 3 deletions
  1. 10 3
      compiler/rautils.pas

+ 10 - 3
compiler/rautils.pas

@@ -26,7 +26,7 @@ Interface
 Uses
 Uses
   strings,
   strings,
   cobjects,
   cobjects,
-  globtype,systems,verbose,globals,files,
+  globtype,types,systems,verbose,globals,files,
   symconst,symtable,aasm,cpubase,cpuasm
   symconst,symtable,aasm,cpubase,cpuasm
 {$ifdef NEWCG}
 {$ifdef NEWCG}
   ,cgbase
   ,cgbase
@@ -812,6 +812,10 @@ Begin
                   opr.ref.offsetfixup:=0;
                   opr.ref.offsetfixup:=0;
                   opr.ref.options:=ref_none;
                   opr.ref.options:=ref_none;
                 end;
                 end;
+              if (pvarsym(sym)^.varspez=vs_var) or
+                 ((pvarsym(sym)^.varspez=vs_const) and
+                 push_addr_param(pvarsym(sym)^.vartype.def)) then
+                SetSize(target_os.size_of_pointer,false);
             end;
             end;
           localsymtable :
           localsymtable :
             begin
             begin
@@ -1512,7 +1516,10 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.43  2000-05-18 17:05:16  peter
+  Revision 1.44  2000-05-22 12:47:52  pierre
+   fix wrong handling of var para for size bug 961
+
+  Revision 1.43  2000/05/18 17:05:16  peter
     * fixed size of const parameters in asm readers
     * fixed size of const parameters in asm readers
 
 
   Revision 1.42  2000/05/11 09:56:22  pierre
   Revision 1.42  2000/05/11 09:56:22  pierre
@@ -1596,4 +1603,4 @@ end.
   Revision 1.20  1999/07/29 20:54:06  peter
   Revision 1.20  1999/07/29 20:54:06  peter
     * write .size also
     * write .size also
 
 
-}
+}