tprec1.pp 591 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. w: word; // 16 bits;
  7. b: 0..31; // 5 bits;
  8. c: boolean; // 1 bit
  9. d: 0..31; // 5 bits
  10. e: tenum; // 3 bits
  11. end;
  12. procedure t(var r2: tr);
  13. var
  14. r: tr;
  15. begin
  16. r.a := 2;
  17. r.w := 32768;
  18. r.b := 23;
  19. r.c := true;
  20. r.d := 5;
  21. r.e := ed;
  22. r2 := r;
  23. end;
  24. var
  25. r: tr;
  26. begin
  27. t(r);
  28. if (r.a <> 2) or
  29. (r.w <> 32768) or
  30. (r.b <> 23) or
  31. (not r.c) or
  32. (r.d <> 5) or
  33. (r.e <> ed) then
  34. halt(1);
  35. end.