t_id
366
t_adddate
2003/10/03
t_result
0
t_knownrunerror
0
tr_id | run | tr_ok | tr_skip | tr_result |
---|---|---|---|---|
459434957 | 937501 | False | True | Skipping test because compiler version too high |
Record count: 1
{ Old file: tbs0138.pp } { with problem, %esi can be crushed and is not restored OK 0.99.6 (PM) } {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; {$ifdef CPUI386} asm movl %eax,%esi end ['EAX','ESI']; {$endif CPUI386} {$ifdef CPU68K} asm move.l d0,a5 end ['d0','a5']; {$endif CPU68K} 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.