summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tprocvar2.pp
blob: 4962a3d6369cbd783a0e402533ed84c630028e2a (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
{$F+}
{$ifdef fpc}
{$mode tp}
{$endif fpc}

type
  tproc = procedure;
  tprocx = procedure(x : longint);

const
  dummy_call_count : longint = 0;

procedure dummy;
begin
  writeln('Dummy called');
  inc(dummy_call_count);
end;

procedure dummyx(x : longint);
begin
  writeln('Dummy called with x=',x);
  inc(dummy_call_count);
end;

var
  tp2 : tproc;
  tp1x,tp2x : tprocx;
const
  tp1 : tproc = dummy;

begin
  move(@tp1,@tp2,sizeof(tproc));
  tp2;
  tp1x:=dummyx;
  move(@tp1x,@tp2x,sizeof(tproc));
  tp2x(2);
end.