summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw1623.pp
blob: 21c6c8215952212d347bfeee23b5364bb1724435 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{ Source provided for Free Pascal Bug Report 1623 }
{ Submitted by "Henrik C. Jessen" on  2001-09-28 }
{ e-mail: henrik.jessen@nettest.com }
PROGRAM Test;

{$inline on}

   FUNCTION fnc(x: integer): integer; INLINE;
   BEGIN
      fnc:=x*2;
   END;

   FUNCTION lfnc(x: longint): longint; INLINE;
   BEGIN
      lfnc:=x*2;
   END;

VAR
   i: Integer;
   j : longint;
BEGIN
   i:=4;
   if fnc(i)<>8 then
     Begin
       Writeln('Error in inlined integer functions');
       RunError(1);
     End;

   j:=4;
   if lfnc(j)<>8 then
     Begin
       Writeln('Error in inlined longint functions');
       RunError(1);
     End;

   j:=lfnc(lfnc(4));
   if j<>16 then
     Begin
       Writeln('Error in inlined longint functions twice');
       RunError(1);
     End;
   i:=fnc(fnc(4));
   if i<>16 then
     Begin
       Writeln('Error in inlined integer functions twice');
       RunError(1);
     End;
END.