mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 06:19:32 +02:00
36 lines
575 B
ObjectPascal
36 lines
575 B
ObjectPascal
{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.
|