]> git.sur5r.net Git - cc65/commitdiff
.byt "" emits no data; avoid a ca65 crash.
authorGreg King <gregdk@users.sf.net>
Sat, 20 Oct 2018 17:40:16 +0000 (13:40 -0400)
committerGreg King <gregdk@users.sf.net>
Sat, 20 Oct 2018 17:41:52 +0000 (13:41 -0400)
Fixes #775 on GitHub.

src/ca65/pseudo.c

index 5dd67af9066918bb877a4b4a5b7622442c25389f..a1115606b9682bc8d727ff8eebc1e07a8d697b46 100644 (file)
@@ -574,7 +574,7 @@ static void DoByte (void)
 
     /* Record type information */
     Span* S = OpenSpan ();
-    StrBuf Type = STATIC_STRBUF_INITIALIZER;
+    StrBuf Type = AUTO_STRBUF_INITIALIZER;
 
     /* Parse arguments */
     while (1) {
@@ -598,9 +598,14 @@ static void DoByte (void)
         }
     }
 
-    /* Close the span, then add type information to it */
+    /* Close the span, then add type information to it.
+    ** Note: empty string operands emit nothing;
+    ** so, add a type only if there's a span.
+    */
     S = CloseSpan (S);
-    SetSpanType (S, GenArrayType (&Type, GetSpanSize (S), EType, sizeof (EType)));
+    if (S != 0) {
+        SetSpanType (S, GenArrayType (&Type, GetSpanSize (S), EType, sizeof (EType)));
+    }
 
     /* Free the type string */
     SB_Done (&Type);