2
0
Эх сурвалжийг харах

-- Zusammenführen von r46974 in ».«:
U compiler/nflw.pas
A tests/webtbs/tw37823.pp
-- Aufzeichnung der Informationen für Zusammenführung von r46974 in ».«:
U .

git-svn-id: branches/fixes_3_2@47909 -

florian 4 жил өмнө
parent
commit
e232588635

+ 1 - 0
.gitattributes

@@ -17809,6 +17809,7 @@ tests/webtbs/tw37796.pp svneol=native#text/pascal
 tests/webtbs/tw3780.pp svneol=native#text/plain
 tests/webtbs/tw37806.pp svneol=native#text/pascal
 tests/webtbs/tw3782.pp svneol=native#text/plain
+tests/webtbs/tw37823.pp svneol=native#text/pascal
 tests/webtbs/tw37844.pp svneol=native#text/pascal
 tests/webtbs/tw37926.pp svneol=native#text/pascal
 tests/webtbs/tw37949.pp svneol=native#text/pascal

+ 2 - 1
compiler/nflw.pas

@@ -1966,7 +1966,8 @@ implementation
                     p2:=current_procinfo;
                     while true do
                       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);
                         if labelsym.owner=p2.procdef.localst then
                           break;

+ 21 - 0
tests/webtbs/tw37823.pp

@@ -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.