fpc/tests/test/tfuncref5.pp

39 lines
1.0 KiB
ObjectPascal

{ %NORUN }
{ normal procedure variable directives can be used on function references }
program tfuncref5;
{$mode objfpc}
{$modeswitch functionreferences}
type
TProc1 = reference to procedure cdecl;
TProc2 = reference to procedure; cdecl;
TProc3 = reference to procedure; [cdecl];
TFunc1 = reference to function: LongInt cdecl;
TFunc2 = reference to function: LongInt; cdecl;
TFunc3 = reference to function: LongInt; [cdecl];
var
Proc1: reference to procedure cdecl;
Proc2: reference to procedure; cdecl;
//Proc3: reference to procedure; [cdecl];
Func1: reference to function: LongInt cdecl;
Func2: reference to function: LongInt; cdecl;
//Func3: reference to function: LongInt; [cdecl];
const
CProc1: reference to procedure cdecl = Nil;
CProc2: reference to procedure; cdecl = Nil;
//CProc3: reference to procedure; [cdecl] = Nil;
CFunc1: reference to function: LongInt cdecl = Nil;
CFunc2: reference to function: LongInt; cdecl = Nil;
//CFunc3: reference to function: LongInt; [cdecl] = Nil;
begin
end.