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 49 50 51 52 53 54 55 56 57 58 59
|
{ %OPT=-Ooloopunroll -Sg }
{$mode objfpc}
uses
sysutils;
var
c,i : Integer;
function f1 : Integer;
begin
for Result:=1 to 2 do
if (i=1234) and (Result=2) then
Exit;
end;
function f2 : Integer;
begin
for Result:=1 to 2 do
if (i=1234) and (Result=2) then
Break;
end;
function f3 : Integer;
label
Stop;
begin
for Result:=1 to 2 do
if (i=1234) and (Result=2) then
Goto Stop;
Stop:
end;
function f4 : Integer;
begin
Result:=-1;
for c:=1 to 2 do
if (i=1234) and (Result=2) then
Raise Exception.Create('Test');
end;
begin
i:=1234;
if f1<>2 then
halt(1);
if f2<>2 then
halt(1);
if f3<>2 then
halt(1);
try
f4;
except
if c<>2 then
halt(1);
end;
writeln('ok');
end.
|