fpc/tests/webtbs/tw3971.pp
Jonas Maebe ae476a9b6a * part of r13334, forgot to commit
git-svn-id: trunk@13343 -
2009-06-28 07:44:02 +00:00

71 lines
1.6 KiB
ObjectPascal

{ Source provided for Free Pascal Bug Report 3971 }
{ Submitted by "Thomas Schatzl" on 2005-05-16 }
{ e-mail: }
type
TDemo1 = object
member1 : byte;
member2 : longint;
member7 : ^longint;
member3 : int64;
member4 : byte;
member5 : longint;
//x : boolean;
//
member6 : int64;
x : boolean;
end;
TDemo = object
member1 : byte;
member5 : longint;
member6 : int64;
y : array[0..2] of TDemo1;
constructor init;
destructor Destroy;
procedure doSomething;
procedure doSomething2;
end;
var
x : array[0..2] of TDemo;
z : TDemo;
w : TDemo1;
constructor TDemo.init();
begin
WriteLn('Create start');
inherited;
WriteLn('Create end');
end;
destructor TDemo.Destroy();
begin
WriteLn('Destroy start');
inherited;
WriteLn('Destroy end');
end;
procedure TDemo.doSomething;
begin
WriteLn('doSomething');
end;
procedure TDemo.doSomething2;
begin
WriteLn('doSomething');
end;
begin
z.init;
if ((ptrint(@z.y)-ptrint(@z)) mod sizeof(ptrint))<>0 then
halt(1);
if ((ptrint(@z.y[0].member7)-ptrint(@z)) mod sizeof(ptrint))<>0 then
halt(1);
z.destroy;
WriteLn(sizeof(TDemo), ' ', sizeof(TDemo1));
end.