Răsfoiți Sursa

+ bug #138
- bug #100,#125

peter 27 ani în urmă
părinte
comite
0c7763b059
2 a modificat fișierele cu 40 adăugiri și 4 ștergeri
  1. 35 0
      bugs/bug0138.pp
  2. 5 4
      bugs/readme.txt

+ 35 - 0
bugs/bug0138.pp

@@ -0,0 +1,35 @@
+{program p; uncomment for a crash}
+type
+  tpt=^tpo;
+  tpo=object
+    constructor init;
+    procedure pi1;
+    procedure pi2;
+  end;
+constructor tpo.init;
+begin
+end;
+procedure tpo.pi1;
+begin
+end;
+procedure tpo.pi2;
+begin
+end;
+procedure crushesi;assembler;
+asm
+        movl %eax,%esi
+end ['EAX','ESI'];
+var
+  p1 : tpt;
+begin
+  p1:=new(tpt,init);
+  with p1^ do
+   begin
+     pi1;
+     crushesi;  { After this the %esi should be reloaded from the tempvariable }
+     pi1;
+   end;
+{ There is here already a tempvar for %esi, why not use it here too ? }
+  p1^.pi2;
+  p1^.pi2;
+end.

+ 5 - 4
bugs/readme.txt

@@ -113,6 +113,7 @@ Fixed bugs:
   bug0098.pp   File type casts are not allowed (works in TP7)        OK 0.99.1 (FK)
   bug0099.pp   wrong assembler code is genereatoed for range check   OK 0.99.1 (?)
                (at least under 0.99.0)
+  bug0100.pp   a unit may only occure once in uses                   OK 0.99.6 (PM)
   bug0101.pp   no type checking for routines in interfance and       OK 0.99.1 (CEC)
                 implementation
   bug0102.pp   page fault when trying to compile under ppcm68k       OK 0.99.1
@@ -128,12 +129,13 @@ Fixed bugs:
   bug0115.pp   missing writeln for comp data type                    OK 0.99.6 (FK)
   bug0116.pp   when local variable size is > $ffff, enter can't be   OK 0.99.1 (FK)
                used to create the stack frame, but it is with -Og
-  bug0117.pp   internalerror 17 (and why is there an automatic float OK 0.99.6 (FK) 
+  bug0117.pp   internalerror 17 (and why is there an automatic float OK 0.99.6 (FK)
                conversion?)
   bug0118.pp   Procedural vars cannot be assigned nil ?              OK 0.99.6 (FK)
   bug0119.pp   problem with methods                                  OK 0.99.6 (FK)
-  bug0121.pp   cardinal -> byte conversion not work (and crashes)    OK 0.99.6 (FK) 
+  bug0121.pp   cardinal -> byte conversion not work (and crashes)    OK 0.99.6 (FK)
   bug0122.pp   exit() gives a warning that the result is not set     OK 0.99.6 (??)
+  bug0125.pp   wrong colors with DOS CRT unit                        OK 0.99.6 (PFV)
   bug0126.pp   packed array isn't allowed                            OK 0.99.6 (FK)
   bug0128.pp   problem with ^[                                       OK 0.99.6 (PFV)
   bug0129.pp   endless loop with while/continue                      OK 0.99.6 (FK)
@@ -167,7 +169,6 @@ bug0083.pp   shows missing "dynamic" set constructor
 bug0090.pp   shows PChar comparison problem
 bug0091.pp   missing standard functions in constant expressions
 bug0096.pp   problem with objects as parameters
-bug0100.pp   a unit may only occure once in uses
 bug0103.pp   problems with boolean typecasts (other type)
 bug0107.pp   shows page fault problem (run in TRUE DOS mode)
 bug0110.pp   SigSegv when using undeclared var in Case
@@ -175,7 +176,6 @@ bug0111.pp   blockread(typedfile,...) is not allowed in TP7
 bug0120.pp   inc/dec(enumeration) doesn't work
 bug0123.pp   problem with intel assembler (shrd)
 bug0124.pp   problem with -Rintel switch and indexing (whatever the order)
-bug0125.pp   wrong colors with DOS CRT unit
 bug0127.pp   problem with cdecl in implementation part
 bug0130.pp   in [..#255] problem
 bug0131.pp   internal error 10 with highdimension arrays
@@ -184,3 +184,4 @@ bug0133.pp   object type declaration not 100% compatibile with TP7
 bug0135.pp   Unsupported subrange type construction.
 bug0136.pp   No types necessary in the procedure header
 bug0137.pp   Cannot assign child object variable to parent objcet type variable
+bug0138.pp   with object^ do bug, %esi is not reloaded when it should