* support/regression/tests/fetchoverlap.c: Added new test case.
[fw/sdcc] / src / SDCCglue.c
index 3c69152650c300fa7db58020bb013fbf340c175b..334e140d4149e5f6ffefa2919742e366cce177c2 100644 (file)
@@ -192,7 +192,7 @@ emitRegularMap (memmap * map, bool addPublics, bool arFlag)
           (sym->_isparm && !IS_REGPARM (sym->etype))) &&
          addPublics &&
          !IS_STATIC (sym->etype) &&
-         (sym->used || sym->fbody))
+          (IS_FUNC(sym->type) ? (sym->used || sym->fbody) : 1))
        {
          addSetHead (&publics, sym);
        }
@@ -260,7 +260,8 @@ emitRegularMap (memmap * map, bool addPublics, bool arFlag)
          allocInfo = 1;
 
          /* if the ival was a symbol, delete it from its segment */
-         if ((symIval=AST_SYMBOL(sym->ival->init.node))) {
+         if (IS_AST_SYM_VALUE(sym->ival->init.node)) {
+           symIval=AST_SYMBOL(sym->ival->init.node);
            segment = SPEC_OCLS (symIval->etype);
            deleteSetItem (&segment->syms, symIval);
          }