tprec2.pp 466 B

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