Răsfoiți Sursa

bug: cannot "skip" labels after if-goto before the jump over the
'then' part

Roberto Ierusalimschy 8 ani în urmă
părinte
comite
5ecb31003f
1 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  1. 2 2
      lparser.c

+ 2 - 2
lparser.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lparser.c,v 2.156 2017/04/20 19:53:55 roberto Exp roberto $
+** $Id: lparser.c,v 2.157 2017/04/28 20:57:45 roberto Exp roberto $
 ** Lua Parser
 ** See Copyright Notice in lua.h
 */
@@ -1400,7 +1400,7 @@ static void test_then_block (LexState *ls, int *escapelist) {
     luaK_goiffalse(ls->fs, &v);  /* will jump to label if condition is true */
     enterblock(fs, &bl, 0);  /* must enter block before 'goto' */
     gotostat(ls, v.t);  /* handle goto/break */
-    skipnoopstat(ls);  /* skip other no-op statements */
+    while (testnext(ls, ';')) {}  /* skip colons */
     if (block_follow(ls, 0)) {  /* 'goto' is the entire block? */
       leaveblock(fs);
       return;  /* and that is it */