summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw1283.pp
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.