[fpc-devel] Case else allows multiple statements
Kirinn
kirinn at mooncore.eu
Thu Sep 19 21:07:25 CEST 2019
I've stumbled on a situation where a case statement compiles when I
wouldn't expect it to. I would expect the below code to produce a
compile error:
program test;
var i : byte = 5;
begin
case i of
0..4: writeln('value is ', i);
else writeln('Else!');
i := 3;
writeln(i);
end;
end.
This compiles without errors or warnings on FPC 3.0.4 and produces the
output:
Else!
3
None of the documentation I've looked at suggests that a case-else is
implicitly a block. All examples in the documentation show only a single
statement in any else clause, or an explicit begin-end block.
Is this expected behavior? If yes, the reference guide (13.2.2) would
benefit from mentioning this.
~Kirinn
More information about the fpc-devel
mailing list