Browse Source

* fixed previous commit for tp and delphi modes

Jonas Maebe 21 years ago
parent
commit
3ff00d31b3
1 changed files with 18 additions and 2 deletions
  1. 18 2
      compiler/nadd.pas

+ 18 - 2
compiler/nadd.pas

@@ -74,7 +74,7 @@ implementation
       symconst,symtype,symdef,symsym,symtable,defutil,defcmp,
       symconst,symtype,symdef,symsym,symtable,defutil,defcmp,
       cgbase,
       cgbase,
       htypechk,pass_1,
       htypechk,pass_1,
-      nbas,nmat,ncnv,ncon,nset,nopt,ncal,ninl,
+      nbas,nmat,ncnv,ncon,nset,nopt,ncal,ninl,nmem,
       {$ifdef state_tracking}
       {$ifdef state_tracking}
       nstate,
       nstate,
       {$endif}
       {$endif}
@@ -1057,6 +1057,19 @@ implementation
              CGMessage(type_e_mismatch);
              CGMessage(type_e_mismatch);
             { convert both to voidpointer, because methodpointers are 8 bytes }
             { convert both to voidpointer, because methodpointers are 8 bytes }
             { even though only the first 4 bytes must be compared (JM)        }
             { even though only the first 4 bytes must be compared (JM)        }
+            if ([m_delphi,m_tp7] * aktmodeswitches <> []) then
+              begin
+                if (lt = loadn) then
+                  begin
+                    left := caddrnode.create(left);
+                    resulttypepass(left);
+                  end;
+                if (rt = loadn) then
+                  begin
+                    right := caddrnode.create(right);
+                    resulttypepass(right);
+                  end;
+              end;
             inserttypeconv_explicit(left,voidpointertype);
             inserttypeconv_explicit(left,voidpointertype);
             inserttypeconv_explicit(right,voidpointertype);
             inserttypeconv_explicit(right,voidpointertype);
           end
           end
@@ -1890,7 +1903,10 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.102  2003-12-29 22:33:08  jonas
+  Revision 1.103  2003-12-30 16:30:50  jonas
+    * fixed previous commit for tp and delphi modes
+
+  Revision 1.102  2003/12/29 22:33:08  jonas
     * fixed methodpointer comparing in a generic way (typecast both left and
     * fixed methodpointer comparing in a generic way (typecast both left and
       right explicitly to voidpointer), instead of relying on strange
       right explicitly to voidpointer), instead of relying on strange
       behvaiour or n386addnode.pass_2 (if size of def = 8, only use the first
       behvaiour or n386addnode.pass_2 (if size of def = 8, only use the first