disallow GOTO when it could corrupt the estack

- this occurs inside a FOR or CASE statement
- GOTO out of a WHILE or REPEAT loop  works
This commit is contained in:
slederer 2025-02-20 01:35:12 +01:00
parent 42d8df9b85
commit dd1e1f7b41
2 changed files with 36 additions and 7 deletions

22
tests/gototest.pas Normal file
View file

@ -0,0 +1,22 @@
program gototest;
var i:integer;
label l1,l2;
begin
goto l1;
writeln('skipped');
l1: writeln('goto destination 1');
{
for i := 1 to 10 do
begin
goto l2;
end;
}
{
case i of
1: writeln('1');
2: goto l2;
3..10: writeln('3 - 10');
end;
l2: writeln('goto destination 2');
}
end.