]> git.gag.com Git - fw/sdcc/commitdiff
A better fix for bug#661910
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 25 Jan 2003 14:45:45 +0000 (14:45 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 25 Jan 2003 14:45:45 +0000 (14:45 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2177 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCast.c
src/SDCCglue.c

index 284c018b796621c7906bca6daf0ca53d0cfbaef1..27cd4f805c65814765eba307a85a64b0839b4377 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
-2003-01-25    <johan@CP255758-A>
+2003-01-25    <johan@balder>
 
+       * src/SDCCglue.c: A better fix for bug #661910
+       * src/SDCCast.c: A better fix for bug #661910
        * src/SDCCglue.c (emitRegularMap): That was a little too efficient
 
 2003-01-24  Bernhard Held <bernhard@bernhardheld.de>
index a831231c0f2dd5baa0819176110d1ecd0f89760a..b4933cb2b5c3fbd7ad4613f00ebbaa5a49756317 100644 (file)
@@ -970,9 +970,7 @@ createIvalCharPtr (ast * sym, sym_link * type, ast * iexpr)
       {
        symbol *sym=AST_SYMBOL(iexpr);
        memmap *segment=SPEC_OCLS(sym->etype);
-       if (segment) {
-         deleteSetItem(&segment->syms, sym);
-       }
+       deleteSetItem(&segment->syms, sym);
       }
       
       return decorateType(resolveSymbols (rast));
@@ -1061,9 +1059,7 @@ gatherAutoInit (symbol * autoChain)
 
       /* resolve the symbols in the ival */
       if (sym->ival) {
-       noAlloc++;
        resolveIvalSym (sym->ival);
-       noAlloc--;
       }
 
       /* if this is a static variable & has an */
index 59f82998c0ae74494db1f6ab87f58f442fff2a36..3be7fce54000900fefcadce09074a59d2125a7db 100644 (file)
@@ -1154,6 +1154,8 @@ emitStaticSeg (memmap * map, FILE * out)
              resolveIvalSym (sym->ival);
              printIval (sym, sym->type, sym->ival, out);
              noAlloc--;
+             // now we don't need sym->ival anymore
+             deleteSetItem(&map->syms, list2val(sym->ival)->sym);
            }
          else {
              /* allocate space */