1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-09 06:29:38 +00:00

Fix the check for constant static local data, which was wrong when the data

was an array. It should go into RODATA, not DATA.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4669 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2010-05-27 19:47:13 +00:00
parent 05b23194d9
commit 64b597017a

View 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);