diff options
Diffstat (limited to 'tests/test/tinline8.pp')
-rw-r--r-- | tests/test/tinline8.pp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test/tinline8.pp b/tests/test/tinline8.pp new file mode 100644 index 0000000000..3536fd7271 --- /dev/null +++ b/tests/test/tinline8.pp @@ -0,0 +1,63 @@ +{$ifdef fpc} +{$mode objfpc} +{$inline on} +{$endif} + +uses + sysutils; + +var a: longint; + +function f(l: longint): longint; inline; +var + l1,l2,l3: longint; +begin + result:=123456; + if (l > 10) then + exit; + result:=30; + for l1 := 1 to 10 do + for l2 := 1 to 100 do + ; + result := 40; + for l3 := 1 to 10 do; +end; + + +procedure test; +var + l: longint; +begin + l:= f(a); + if (l<>123456) then + halt(1); +end; + + +procedure test2; +var + l: longint; +begin + try + finally + l:= f(a); + if (l<>123456) then + halt(1); + end; +end; + + +procedure inl2; inline; +begin + try + except on exception do ; + end +end; + + +begin + a:=20; + test; + test2; + inl2 +end. |