]> git.sur5r.net Git - cc65/blobdiff - src/cc65/locals.c
Renamed the defines in symdefs.h to something more meaningful. They were named
[cc65] / src / cc65 / locals.c
index be5c09970c5f427225057cb64840665706adf621..710d05e33a34a7442bbaee93f432246fd2c08378 100644 (file)
@@ -355,8 +355,12 @@ static unsigned ParseStaticDecl (Declaration* Decl, unsigned* SC)
     /* Static data */
     if (CurTok.Tok == TOK_ASSIGN) {
 
-        /* Initialization ahead, switch to data segment and define a label */
-        if (IsQualConst (Decl->Type)) {
+        /* Initialization ahead, switch to data segment and define a label.
+         * For arrays, we need to check the elements of the array for 
+         * constness, not the array itself.
+         */
+        if (IsQualConst (Decl->Type) ||
+            (IsTypeArray (Decl->Type) && IsQualConst (GetElementType (Decl->Type)))) {
             SymData = AllocLabel (g_userodata);
         } else {
             SymData = AllocLabel (g_usedata);