]> git.sur5r.net Git - cc65/commitdiff
Handle the new symbol flags correctly. Changed - among other things - the
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 16 Aug 2011 11:50:27 +0000 (11:50 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 16 Aug 2011 11:50:27 +0000 (11:50 +0000)
data types of members in the management structures.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5180 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ld65/dbgsyms.c
src/ld65/dbgsyms.h
src/ld65/exports.c
src/ld65/exports.h

index 090520adf5e845bd3e7651c8d56e8673b864c08a..445167818f5c647a200767b947f2c4cf7d5f36db 100644 (file)
@@ -72,7 +72,7 @@ static DbgSym*        DbgSymPool[256];
 
 
 
-static DbgSym* NewDbgSym (unsigned char Type, unsigned char AddrSize, ObjData* O)
+static DbgSym* NewDbgSym (unsigned Type, unsigned char AddrSize, ObjData* O)
 /* Create a new DbgSym and return it */
 {
     /* Allocate memory */
@@ -80,7 +80,6 @@ static DbgSym* NewDbgSym (unsigned char Type, unsigned char AddrSize, ObjData* O
 
     /* Initialize the fields */
     D->Next      = 0;
-    D->Flags    = 0;
     D->Obj       = O;
     D->LineInfos = EmptyCollection;
     D->Expr             = 0;
@@ -204,10 +203,10 @@ long GetDbgSymVal (const DbgSym* D)
 }
 
 
-
+             
 void PrintDbgSyms (FILE* F)
 /* Print the debug symbols in a debug file */
-{                   
+{
     unsigned I, J;
 
     for (I = 0; I < CollCount (&ObjDataList); ++I) {
index ad84fd9be0f6f62e0ae45327f6bdf1a929d93685..209d78f4a1afabca0bdfc68228996c4ee661de3d 100644 (file)
@@ -62,15 +62,14 @@ struct Scope;
 typedef struct DbgSym DbgSym;
 struct DbgSym {
     DbgSym*                    Next;           /* Pool linear list link */
-    unsigned                   Flags;          /* Generic flags */
     ObjData*                   Obj;            /* Object file that exports the name */
     Collection          LineInfos;      /* Line infos of definition */
     ExprNode*                  Expr;           /* Expression (0 if not def'd) */
-    unsigned long       Size;           /* Symbol size if any */
+    unsigned            Size;           /* Symbol size if any */
     unsigned            OwnerId;        /* Id of parent/owner */
     unsigned            Name;                  /* Name */
-    unsigned char      Type;           /* Type of symbol */
-    unsigned char       AddrSize;       /* Address size of symbol */
+    unsigned short      Type;          /* Type of symbol */
+    unsigned short      AddrSize;       /* Address size of symbol */
 };
 
 
index 13ec49d8b14971c2295491f3f2434e08bf7a0be6..9be4e22fb5f1bcf7ec817fd45cd4fa8d13955642 100644 (file)
@@ -92,7 +92,7 @@ static Export**               ExpPool  = 0;           /* Exports array */
 
 
 
-static Export* NewExport (unsigned char Type, unsigned char AddrSize,
+static Export* NewExport (unsigned Type, unsigned char AddrSize,
                           unsigned Name, ObjData* Obj);
 /* Create a new export and initialize it */
 
@@ -289,7 +289,7 @@ const LineInfo* GetImportPos (const Import* I)
 
 
 
-static Export* NewExport (unsigned char Type, unsigned char AddrSize,
+static Export* NewExport (unsigned Type, unsigned char AddrSize,
                           unsigned Name, ObjData* Obj)
 /* Create a new export and initialize it */
 {
@@ -306,7 +306,7 @@ static Export* NewExport (unsigned char Type, unsigned char AddrSize,
     E->Expr             = 0;
     E->Size      = 0;
     E->LineInfos = EmptyCollection;
-    E->Type             = Type;
+    E->Type             = Type | SYM_EXPORT;
     E->AddrSize  = AddrSize;
     memset (E->ConDes, 0, sizeof (E->ConDes));
 
@@ -486,7 +486,7 @@ Export* CreateConstExport (unsigned Name, long Value)
 /* Create an export for a literal date */
 {
     /* Create a new export */
-    Export* E = NewExport (SYM_CONST | SYM_EQUATE, ADDR_SIZE_ABS, Name, 0);
+    Export* E = NewExport (SYM_CONST|SYM_EQUATE, ADDR_SIZE_ABS, Name, 0);
 
     /* Assign the value */
     E->Expr = LiteralExpr (Value, 0);
@@ -504,7 +504,7 @@ Export* CreateExprExport (unsigned Name, ExprNode* Expr, unsigned char AddrSize)
 /* Create an export for an expression */
 {
     /* Create a new export */
-    Export* E = NewExport (SYM_EXPR | SYM_EQUATE, AddrSize, Name, 0);
+    Export* E = NewExport (SYM_EXPR|SYM_EQUATE, AddrSize, Name, 0);
 
     /* Assign the value expression */
     E->Expr = Expr;
index 003757278b585208f34ede85eedb5014c763cd8d..535e7b24c876ae0d5a8de18f1e97df52fc12a23b 100644 (file)
@@ -67,8 +67,8 @@ struct Import {
     Collection          LineInfos;      /* Line info of reference */
     struct Export*     Exp;            /* Matching export for this import */
     unsigned            Name;          /* Name if not in table */
-    unsigned char       Flags;          /* Generic flags */
-    unsigned char      AddrSize;       /* Address size of import */
+    unsigned short      Flags;          /* Generic flags */
+    unsigned short      AddrSize;       /* Address size of import */
 };
 
 
@@ -83,10 +83,10 @@ struct Export {
     unsigned           ImpCount;       /* How many imports for this symbol? */
     Import*            ImpList;        /* List of imports for this symbol */
     ExprNode*                  Expr;           /* Expression (0 if not def'd) */
-    unsigned long       Size;           /* Size of the symbol if any */
+    unsigned            Size;           /* Size of the symbol if any */
     Collection          LineInfos;      /* Line info of definition */
-    unsigned char      Type;           /* Type of export */
-    unsigned char       AddrSize;       /* Address size of export */
+    unsigned short      Type;          /* Type of export */
+    unsigned short      AddrSize;       /* Address size of export */
     unsigned char      ConDes[CD_TYPE_COUNT];  /* Constructor/destructor decls */
 };