tw15061a.pp 952 B

12345678910111213141516171819202122232425262728293031323334353637
  1. {$ifdef FPC}
  2. {$mode macpas}
  3. {$align power}
  4. {$endif}
  5. {$ifdef __GPC__}
  6. { maximum-field-alignment=16}
  7. {$endif}
  8. program patbug;
  9. type
  10. {$ifdef FPC}
  11. PtrWord = PtrUInt;
  12. {$endif}
  13. pattern = record pat: array[0..7] of byte end;
  14. patrec = record b: boolean; p: pattern end;
  15. doublerec = record b: boolean; d: double end;
  16. var
  17. gPatRec: patrec;
  18. gDoubleRec: doublerec;
  19. begin
  20. writeln( 'SizeOf( patrec) = ', SizeOf( patrec));
  21. if (sizeof(patrec)<>9) then
  22. halt(1);
  23. writeln( 'Offset of p: pattern = ', PtrWord( @gPatRec.p) - PtrWord( @gPatRec));
  24. if ((PtrWord( @gPatRec.p) - PtrWord( @gPatRec)) <> 1) then
  25. halt(2);
  26. writeln;
  27. writeln( 'SizeOf( doublerec) = ', SizeOf( doublerec));
  28. if (sizeof(doublerec)<>12) then
  29. halt(3);
  30. writeln( 'Offset of d: double = ', PtrWord( @gDoubleRec.d) - PtrWord( @gDoubleRec));
  31. if ((PtrWord( @gDoubleRec.d) - PtrWord( @gDoubleRec))<>4) then
  32. halt(4);
  33. writeln;
  34. end.