mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-06 23:46:04 +02:00
* when implicit try...finallys are turned off, do not throw an error if a procedure
is left which would need but does not have an implicit try...finally block, resolves #37823 git-svn-id: trunk@46974 -
This commit is contained in:
parent
a628c1c3dd
commit
e1536bdf26
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -18479,6 +18479,7 @@ tests/webtbs/tw37796.pp svneol=native#text/pascal
|
|||||||
tests/webtbs/tw3780.pp svneol=native#text/plain
|
tests/webtbs/tw3780.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw37806.pp svneol=native#text/pascal
|
tests/webtbs/tw37806.pp svneol=native#text/pascal
|
||||||
tests/webtbs/tw3782.pp svneol=native#text/plain
|
tests/webtbs/tw3782.pp svneol=native#text/plain
|
||||||
|
tests/webtbs/tw37823.pp svneol=native#text/pascal
|
||||||
tests/webtbs/tw3796.pp svneol=native#text/plain
|
tests/webtbs/tw3796.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3805.pp svneol=native#text/plain
|
tests/webtbs/tw3805.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3814.pp svneol=native#text/plain
|
tests/webtbs/tw3814.pp svneol=native#text/plain
|
||||||
|
@ -2193,7 +2193,8 @@ implementation
|
|||||||
p2:=current_procinfo;
|
p2:=current_procinfo;
|
||||||
while true do
|
while true do
|
||||||
begin
|
begin
|
||||||
if (p2.flags*[pi_needs_implicit_finally,pi_uses_exceptions,pi_has_implicit_finally])<>[] then
|
if ((cs_implicit_exceptions in current_settings.moduleswitches) and ((p2.flags*[pi_needs_implicit_finally,pi_has_implicit_finally])<>[])) or
|
||||||
|
((p2.flags*[pi_uses_exceptions])<>[]) then
|
||||||
Message(cg_e_goto_across_procedures_with_exceptions_not_allowed);
|
Message(cg_e_goto_across_procedures_with_exceptions_not_allowed);
|
||||||
if labelsym.owner=p2.procdef.localst then
|
if labelsym.owner=p2.procdef.localst then
|
||||||
break;
|
break;
|
||||||
|
21
tests/webtbs/tw37823.pp
Normal file
21
tests/webtbs/tw37823.pp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{$MODE ISO}
|
||||||
|
{$implicitExceptions off}
|
||||||
|
{$Q+}
|
||||||
|
{$R+}
|
||||||
|
program gt;
|
||||||
|
label 1;
|
||||||
|
procedure jump;
|
||||||
|
var
|
||||||
|
a: integer;
|
||||||
|
b: rawbytestring;
|
||||||
|
begin
|
||||||
|
b := 'nanu';
|
||||||
|
writeln('nanu');
|
||||||
|
goto 1;
|
||||||
|
end;
|
||||||
|
begin
|
||||||
|
jump;
|
||||||
|
writeln('not jumped!');
|
||||||
|
1:
|
||||||
|
writeln('jumped!');
|
||||||
|
end.
|
Loading…
Reference in New Issue
Block a user