Răsfoiți Sursa

* fixed bug with assigning ansistrings (left^.location was released too
early, caused bug reported by Aleksey V. Vaneev in mailing list on
2001/09/07 regarding 'problems with nested procedures and local vars'
("merged" from cga.pas in the fixes branch)

Jonas Maebe 24 ani în urmă
părinte
comite
e8c8f8785a
1 a modificat fișierele cu 8 adăugiri și 2 ștergeri
  1. 8 2
      compiler/i386/n386ld.pas

+ 8 - 2
compiler/i386/n386ld.pas

@@ -490,11 +490,11 @@ implementation
                   { nevertheless, this has to be changed, because otherwise the }
                   { register is released before it's contents are pushed ->     }
                   { problems with the optimizer (JM)                            }
-                  del_reference(left.location.reference);
                   ungettemp:=false;
                   { Find out which registers have to be pushed (JM) }
                   regs_to_push := $ff;
                   remove_non_regvars_from_loc(right.location,regs_to_push);
+                  remove_non_regvars_from_loc(left.location,regs_to_push);
                   { And push them (JM) }
                   pushusedregisters(regspushed,regs_to_push);
                   case right.location.loc of
@@ -1088,7 +1088,13 @@ begin
 end.
 {
   $Log$
-  Revision 1.21  2001-08-30 20:13:57  peter
+  Revision 1.22  2001-09-09 08:51:09  jonas
+    * fixed bug with assigning ansistrings (left^.location was released too
+      early, caused bug reported by Aleksey V. Vaneev in mailing list on
+      2001/09/07 regarding 'problems with nested procedures and local vars'
+      ("merged" from cga.pas in the fixes branch)
+
+  Revision 1.21  2001/08/30 20:13:57  peter
     * rtti/init table updates
     * rttisym for reusable global rtti/init info
     * support published for interfaces