Browse Source

* fixed one more internalerror 10

florian 25 years ago
parent
commit
8839b14aa6
2 changed files with 13 additions and 4 deletions
  1. 8 2
      compiler/cg386cnv.pas
  2. 5 2
      compiler/tcadd.pas

+ 8 - 2
compiler/cg386cnv.pas

@@ -615,6 +615,9 @@ implementation
                  push_int(pto^.resulttype^.size-1)
                else
                  push_int(l);
+               { we've also to release the registers ... }
+               del_reference(pfrom^.location.reference);
+               { ... here only the temp. location is released }
                emit_push_lea_loc(pfrom^.location,true);
                emitpushreferenceaddr(pto^.location.reference);
                emitcall('FPC_CHARARRAY_TO_SHORTSTR');
@@ -1533,7 +1536,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.102  2000-02-09 13:22:46  peter
+  Revision 1.103  2000-02-19 10:12:47  florian
+    * fixed one more internalerror 10
+
+  Revision 1.102  2000/02/09 13:22:46  peter
     * log truncated
 
   Revision 1.101  2000/01/13 16:52:48  jonas
@@ -1615,4 +1621,4 @@ end.
   Revision 1.82  1999/08/04 00:22:43  florian
     * renamed i386asm and i386base to cpuasm and cpubase
 
-}
+}

+ 5 - 2
compiler/tcadd.pas

@@ -416,8 +416,8 @@ implementation
                   andn,
                   orn:
                     begin
-                      calcregisters(p,0,0,0);
                       make_bool_equal_size(p);
+                      calcregisters(p,0,0,0);
                       p^.location.loc:=LOC_JUMP;
                     end;
                   xorn,ltn,lten,gtn,gten:
@@ -1260,7 +1260,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.69  2000-02-17 14:53:42  florian
+  Revision 1.70  2000-02-19 10:12:48  florian
+    * fixed one more internalerror 10
+
+  Revision 1.69  2000/02/17 14:53:42  florian
     * some updates for the newcg
 
   Revision 1.68  2000/02/14 22:34:28  florian