tprec3.pp 540 B

123456789101112131415161718192021222324252627282930313233343536
  1. {$bitpacking on}
  2. type
  3. tenum = (ea,eb,ec,ed,ee,ef,eg,eh);
  4. tr = packed record
  5. a: 0..3; // 2 bits
  6. i: int64;
  7. c: boolean; // 1 bit
  8. d: 0..31; // 5 bits
  9. e: tenum; // 3 bits
  10. end;
  11. procedure t(var r2: tr);
  12. var
  13. r: tr;
  14. begin
  15. r.a := 2;
  16. r.i := 1234567890123456789;
  17. r.c := true;
  18. r.d := 5;
  19. r.e := ed;
  20. r2 := r;
  21. end;
  22. var
  23. r: tr;
  24. begin
  25. t(r);
  26. if (r.a <> 2) or
  27. (r.i <> 1234567890123456789) or
  28. (not r.c) or
  29. (r.d <> 5) or
  30. (r.e <> ed) then
  31. halt(1);
  32. end.