]> git.sur5r.net Git - cc65/commitdiff
Replace hard returns with an "else", add an error for non-IDENT tokens, and test...
authorLauri Kasanen <cand@gmx.com>
Mon, 15 Apr 2019 13:23:01 +0000 (16:23 +0300)
committergreg-king5 <greg.king5@verizon.net>
Sun, 21 Apr 2019 16:46:03 +0000 (12:46 -0400)
src/cc65/goto.c

index fde9df94595bf4ffc652ba2f51cd7b14f2a61703..939eb65a9dd34f6a6e93c0b16d2668975b5bf745 100644 (file)
@@ -90,14 +90,12 @@ void GotoStatement (void)
 
             /* Find array size */
             if (!IsTypeArray (arr->Type) || SizeOf (arr->Type) == 0 ||
+                !(arr->Flags & SC_STATIC) ||
                 SizeOf (GetElementType(arr->Type)) != 2) {
-                Error ("Expected array");
-                return;
-            }
-            if (GetElementCount (arr->Type) > 127) {
+                Error ("Expected a static array");
+            } else if (GetElementCount (arr->Type) > 127) {
                 Error ("Only arrays with <= 127 labels are supported, got %lu",
                        GetElementCount (arr->Type));
-                return;
             }
 
             ConsumeLBrack ();
@@ -153,6 +151,8 @@ void GotoStatement (void)
                     cur = cur->NextSym;
                 }
             }
+        } else { /* It was not TOK_IDENT, or we couldn't find the symbol */
+            Error ("Array name expected");
         }
     } else {