]> git.sur5r.net Git - cc65/commitdiff
Fixed a bug: The size of a scope is now recorded for all scopes in
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 19 Aug 2011 15:06:51 +0000 (15:06 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 19 Aug 2011 15:06:51 +0000 (15:06 +0000)
SymLeaveLevel. Doing so also in the code for .STRUCT/.UNION will try to enter
the .size symbol twice.

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

src/ca65/struct.c

index 07068ef947464520949abc8a4c39d3e7af7da381..a716c861ab60a18fffb0f1afd151a12e9cecd4fe 100644 (file)
@@ -244,17 +244,10 @@ static long DoStructInternal (long Offs, unsigned Type)
         ConsumeSep ();
     }
 
-    /* If this is not a anon struct, enter a special symbol named ".size"
-     * into the symbol table of the struct that holds the size of the
-     * struct. Since the symbol starts with a dot, it cannot be accessed
-     * by user code.
-     * Leave the struct scope level.
+    /* If this is not a anon struct, leave the struct scope level. This will
+     * also record the size of the scope.
      */
     if (!Anon) {
-        /* Add a symbol */
-        SymEntry* SizeSym = GetSizeOfScope (CurrentScope);
-        SymDef (SizeSym, GenLiteralExpr (Size), ADDR_SIZE_DEFAULT, SF_NONE);
-
         /* Close the struct scope */
         SymLeaveLevel ();
     }