mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 10:49:31 +02:00

* additionally implicit calling conventions of cdecl or mwpascal now work as well * adjusted tests + added tests Note: the generator for packages/univint needs to be fixed, until then building on macOS will be broken git-svn-id: trunk@43684 -
39 lines
605 B
ObjectPascal
39 lines
605 B
ObjectPascal
{ %target=darwin,iphonesim}
|
|
{ %skipcpu=powerpc,powerpc64 }
|
|
|
|
{$modeswitch cblocks}
|
|
|
|
type
|
|
tblock = reference to function(l: longint): longint; cdecl; cblock;
|
|
|
|
function test(b: tblock; l: longint): longint;
|
|
begin
|
|
test:=b(l);
|
|
end;
|
|
|
|
function func(l: longint): longint;
|
|
begin
|
|
writeln('called as block');
|
|
func:=l+1;
|
|
end;
|
|
|
|
const
|
|
bconst: tblock = @func;
|
|
|
|
var
|
|
b: tblock;
|
|
begin
|
|
b:=@func;
|
|
if b(1)<>2 then
|
|
halt(1);
|
|
if test(@func,4)<>5 then
|
|
halt(2);
|
|
if test(b,123)<>124 then
|
|
halt(3);
|
|
if bconst(100)<>101 then
|
|
halt(4);
|
|
if test(bconst,10)<>11 then
|
|
halt(5);
|
|
end.
|
|
|