123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- {$inline on}
- {$mode objfpc}
- type
- tr = record
- case byte of
- 1: (l: longint);
- 2: (b1,b2,b3,b4: byte);
- end;
- function f: tr; inline;
- begin
- f.l := 5;
- f.b3 := 6;
- end;
- procedure t(const r1: tr);
- begin
- if (r1.b3 <> 6) or
- ((r1.l and 255) <> 5) then
- halt(1);
- end;
- procedure t2(out r: tr); inline;
- begin
- r.l := 7;
- r.b2 := 31;
- end;
- procedure t3(out r: tr); inline;
- begin
- r.l := 88;
- r.b2 := 9;
- end;
- procedure t4(out r: tr);
- begin
- t3(r);
- end;
- var
- r: tr;
- begin
- t(f);
- t2(r);
- if ((r.l and 255) <> 7) or
- (r.b2 <> 31) then
- halt(1);
- t4(r);
- if ((r.l and 255) <> 88) or
- (r.b2 <> 9) then
- halt(1);
- end.
|