summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw2966.pp
blob: 114879349158f9aa86c95c244d14fda50229b834 (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
{ Source provided for Free Pascal Bug Report 2966 }
{ Submitted by "Alexey Barkovoy" on  2004-02-09 }
{ e-mail: clootie@ixbt.com }
program Project1;

type
  {$ALIGN 8} // Can be 8, 16, 32 other value
  TType1 = record
    f: Word;
  end;

  TType2 = packed record
    f, g: Word;
  end;

  TType3 = record
    f, g: Word;
  end;

var
  t: TType2;
  t2: TType3;
begin
  WriteLn('Type1 = ', SizeOf(TType1));
  WriteLn('Type2 = ', SizeOf(TType2));
  WriteLn('Type3 = ', SizeOf(TType3));
  WriteLn('It''s OK = ', DWORD(t));
  WriteLn('This is the bug = ', DWORD(t2)); // Compiler stops here with "Error: Illegal type conversion"
end.