tinline8.pp 657 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. {$ifdef fpc}
  2. {$mode objfpc}
  3. {$inline on}
  4. {$endif}
  5. uses
  6. sysutils;
  7. var a: longint;
  8. function f(l: longint): longint; inline;
  9. var
  10. l1,l2,l3: longint;
  11. begin
  12. result:=123456;
  13. if (l > 10) then
  14. exit;
  15. result:=30;
  16. for l1 := 1 to 10 do
  17. for l2 := 1 to 100 do
  18. ;
  19. result := 40;
  20. for l3 := 1 to 10 do;
  21. end;
  22. procedure test;
  23. var
  24. l: longint;
  25. begin
  26. l:= f(a);
  27. if (l<>123456) then
  28. halt(1);
  29. end;
  30. procedure test2;
  31. var
  32. l: longint;
  33. begin
  34. try
  35. finally
  36. l:= f(a);
  37. if (l<>123456) then
  38. halt(1);
  39. end;
  40. end;
  41. procedure inl2; inline;
  42. begin
  43. try
  44. except on exception do ;
  45. end
  46. end;
  47. begin
  48. a:=20;
  49. test;
  50. test2;
  51. inl2
  52. end.