From c4778045f940eb324e9d9ffe57a45b44c88febf9 Mon Sep 17 00:00:00 2001 From: cuz Date: Mon, 30 Oct 2000 19:33:04 +0000 Subject: [PATCH] Add initializer bit in debug syms git-svn-id: svn://svn.cc65.org/cc65/trunk@407 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/ca65/symtab.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/ca65/symtab.c b/src/ca65/symtab.c index f43b4c7b1..4963d2c3a 100644 --- a/src/ca65/symtab.c +++ b/src/ca65/symtab.c @@ -1146,20 +1146,30 @@ void WriteDbgSyms (void) /* Check if the symbol is const */ ExprMask = (SymIsConst (S))? EXP_CONST : EXP_EXPR; - /* Write the type */ - if (S->Flags & SF_ZP) { - ObjWrite8 (EXP_ZP | ExprMask); - } else { - ObjWrite8 (EXP_ABS | ExprMask); + /* Add zeropage/abs bits */ + ExprMask |= (S->Flags & SF_ZP)? EXP_ZP : EXP_ABS; + + /* Add the initializer bits */ + if (S->Flags & SF_INITIALIZER) { + ExprMask |= EXP_INITIALIZER; } + + /* Write the type */ + ObjWrite8 (ExprMask); + + /* Write the name */ ObjWriteStr (S->Name); - if (ExprMask == EXP_CONST) { + + /* Write the value */ + if ((ExprMask & EXP_MASK_VAL) == EXP_CONST) { /* Constant value */ ObjWrite32 (S->V.Val); } else { /* Expression involved */ WriteExpr (S->V.Expr); } + + /* Write the source file position */ ObjWritePos (&S->Pos); } S = S->List;