Browse Source

* Fix bug ID #31524

git-svn-id: trunk@35593 -
michael 8 years ago
parent
commit
0a9031c76f
2 changed files with 18 additions and 2 deletions
  1. 1 1
      packages/fcl-passrc/src/pparser.pp
  2. 17 1
      packages/fcl-passrc/tests/tcstatements.pas

+ 1 - 1
packages/fcl-passrc/src/pparser.pp

@@ -4170,7 +4170,7 @@ begin
       begin
         NextToken;
         curblock.AddCommand('goto '+curtokenstring);
-        expecttoken(tkSemiColon);
+        // expecttoken(tkSemiColon);
       end;
     tkfor:
       begin

+ 17 - 1
packages/fcl-passrc/tests/tcstatements.pas

@@ -110,8 +110,9 @@ Type
     Procedure TestTryExceptOn2;
     Procedure TestTryExceptOnElse;
     Procedure TestTryExceptOnIfElse;
-    procedure TestTryExceptRaise;
+    procedure  TestTryExceptRaise;
     Procedure TestAsm;
+    Procedure TestGotoInIfThen;
   end;
 
 implementation
@@ -1646,6 +1647,21 @@ begin
   AssertEquals('token 4 ','1',T.Tokens[3]);
 end;
 
+Procedure TTestStatementParser.TestGotoInIfThen;
+
+begin
+  AddStatements(['if expr then',
+  '  dosomething',
+  '   else if expr2 then',
+  '    goto try_qword',
+  '  else',
+  '    dosomething;',
+  '  try_qword:',
+  '  dosomething;',
+  'end.']);
+  ParseModule;
+end;
+
 initialization
   RegisterTests([TTestStatementParser]);