If a variable/function is declared as extern then declared in a file then delete
authorsandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 19 Dec 2001 05:04:14 +0000 (05:04 +0000)
committersandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 19 Dec 2001 05:04:14 +0000 (05:04 +0000)
it from the memory segment so that it does not land up in both "externs" and "globals"

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1712 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/SDCCsymt.c

index ac088cc992d1c160267a3b8b5015f0f5a847a995..47cf210b1fe2da9e711e0a8c0e88ec443c33e834 100644 (file)
@@ -990,6 +990,7 @@ addSymChain (symbol * symHead)
          }
          /* delete current entry */
          deleteSym (SymbolTab, csym, csym->name);
+         deleteFromSeg(csym);
        } else {
          /* not extern */
          werror (E_DUPLICATE, sym->name);
@@ -1772,6 +1773,7 @@ checkFunction (symbol * sym, symbol *csym)
   /* replace with this defition */
   sym->cdef = csym->cdef;
   deleteSym (SymbolTab, csym, csym->name);
+  deleteFromSeg(csym);
   addSym (SymbolTab, sym, sym->name, sym->level, sym->block, 1);
   if (IS_EXTERN (csym->etype) && !
       IS_EXTERN (sym->etype))