]> git.sur5r.net Git - cc65/commitdiff
Return after errors, move left bracket consumption down
authorLauri Kasanen <cand@gmx.com>
Sun, 14 Apr 2019 16:47:42 +0000 (19:47 +0300)
committergreg-king5 <greg.king5@verizon.net>
Sun, 21 Apr 2019 16:46:03 +0000 (12:46 -0400)
src/cc65/goto.c

index 08a7033c38dc3da200810884057a82a5f002abfc..fde9df94595bf4ffc652ba2f51cd7b14f2a61703 100644 (file)
@@ -87,15 +87,20 @@ void GotoStatement (void)
         if (CurTok.Tok == TOK_IDENT &&
             (arr = FindSym (CurTok.Ident))) {
             NextToken ();
         if (CurTok.Tok == TOK_IDENT &&
             (arr = FindSym (CurTok.Ident))) {
             NextToken ();
-            ConsumeLBrack ();
 
             /* Find array size */
             if (!IsTypeArray (arr->Type) || SizeOf (arr->Type) == 0 ||
 
             /* Find array size */
             if (!IsTypeArray (arr->Type) || SizeOf (arr->Type) == 0 ||
-                SizeOf (GetElementType(arr->Type)) != 2)
+                SizeOf (GetElementType(arr->Type)) != 2) {
                 Error ("Expected array");
                 Error ("Expected array");
-            if (GetElementCount (arr->Type) > 127)
+                return;
+            }
+            if (GetElementCount (arr->Type) > 127) {
                 Error ("Only arrays with <= 127 labels are supported, got %lu",
                        GetElementCount (arr->Type));
                 Error ("Only arrays with <= 127 labels are supported, got %lu",
                        GetElementCount (arr->Type));
+                return;
+            }
+
+            ConsumeLBrack ();
 
             if (CurTok.Tok == TOK_ICONST) {
                 val = CurTok.IVal;
 
             if (CurTok.Tok == TOK_ICONST) {
                 val = CurTok.IVal;