blob: bec3e2a8d395fc1f86e44914ee03ae6b4bc151eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
{ %version=1.1 }
{$mode objfpc}
type
t = class(tobject)
constructor Init;
end;
constructor t.Init;
begin
fail; { constructor will return NULL in ESI now, which is OK }
end;
type
c = class(tobject)
procedure p;
end;
procedure c.p;
var i:t;
begin
i:=t.Init;
if i<>nil then
begin
writeln('Problem with saving a non assigned self');
halt(1);
end;
{ returned is NULL in ESI, and AfterConstructor is attempted to call by
referencing an invalid VMT via ESI}
end;
var i:c;
begin
i:=c.create; i.p;
end.
|