tinlin64.pp 789 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. program test_64bit_inline;
  2. {$inline on}
  3. function add (a,b : int64) : int64;
  4. begin
  5. add:=a+b;
  6. end;
  7. function inlineadd (a,b : int64) : int64; inline;
  8. begin
  9. inlineadd:=a+b;
  10. end;
  11. var
  12. a, b, c, d : int64;
  13. begin
  14. a:=50;
  15. b:=78;
  16. d:= -45;
  17. writeln('a (',a,') + b (',b,') = ',a+b);
  18. writeln('Using add function');
  19. writeln('a (',a,') + b (',b,') = ',add(a+1,b-1));
  20. writeln('Using add function inlined');
  21. writeln('a (',a,') + b (',b,') = ',inlineadd(a+1,b-1));
  22. c:=inlineadd(a+d,b-d);
  23. writeln('a (',a,') + b (',b,') = ',c);
  24. if (a+b<>add(a-1,b+1)) then
  25. begin
  26. writeln('Error in function with int64 args');
  27. Halt(1);
  28. end;
  29. if (a+b<>inlineadd(a+1,b-1)) then
  30. begin
  31. writeln('Error in inlined function with int64 args');
  32. Halt(1);
  33. end;
  34. end.