tcalval10.pp 464 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. { %cpu=i386}
  2. { %target=darwin }
  3. type
  4. tr= packed record
  5. b1, b2: byte;
  6. end;
  7. procedure test(b: tr);mwpascal;
  8. begin
  9. if b.b2 <> 5 then
  10. halt(1);
  11. end;
  12. procedure t;
  13. var
  14. r: tr;
  15. begin
  16. r.b2 := 5;
  17. test(r);
  18. end;
  19. procedure t2(b: byte); mwpascal;
  20. var
  21. p: plongint;
  22. begin
  23. p := plongint(@b);
  24. if p^ <> 1 then
  25. halt(2);
  26. end;
  27. procedure t3;
  28. var
  29. b,b2,b3,b4: byte;
  30. begin
  31. b := 1;
  32. b2 := 2;
  33. b3 := 3;
  34. b4 := 4;
  35. t2(b);
  36. end;
  37. begin
  38. t;
  39. t3;
  40. end.