tb0138.pp 387 B

12345678910111213141516171819202122232425262728293031
  1. { %fail }
  2. type
  3. p_int = procedure (var i : smallint);
  4. procedure testl(var i : longint);
  5. begin
  6. i:=$ffff;
  7. end;
  8. var
  9. p : p_int;
  10. r : packed record
  11. {$ifdef ENDIAN_BIG}
  12. j,i : smallint;
  13. {$else}
  14. i,j : smallint;
  15. {$endif}
  16. end;
  17. begin
  18. p:=@testl;
  19. r.j:=5;
  20. p(r.i);
  21. if r.j<>5 then
  22. begin
  23. writeln('Wrong code overwrites j');
  24. halt(1);
  25. end;
  26. end.