tw16668.pp 685 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. { %opt=-g-t }
  2. program Project1;
  3. {$mode objfpc}{$H+}
  4. procedure Foo1;
  5. var
  6. a: TObject;
  7. r: record
  8. b : array[0..10] of byte
  9. end;
  10. begin
  11. {$ifdef cpu32}
  12. if ptruint(a)<>$55555555 then
  13. halt(1);
  14. {$else}
  15. if ptruint(a)<>$5555555555555555 then
  16. halt(1);
  17. {$endif}
  18. end;
  19. procedure Foo2;inline;
  20. var
  21. a: TObject;
  22. r: record
  23. b : array[0..10] of byte
  24. end;
  25. begin
  26. {$ifdef cpu32}
  27. if ptruint(a)<>$55555555 then
  28. halt(1);
  29. {$else}
  30. if ptruint(a)<>$5555555555555555 then
  31. halt(1);
  32. {$endif}
  33. end;
  34. procedure Foo3;inline;
  35. var
  36. r: record
  37. b : array[0..10] of byte
  38. end;
  39. begin
  40. if r.b[3]<>$55 then
  41. halt(1);
  42. end;
  43. begin
  44. Foo1;
  45. Foo2;
  46. Foo3;
  47. writeln('ok');
  48. end.