a better fix for bug #456966
[fw/sdcc] / src / SDCCglue.c
index d74a0f3bea06d25dc9d449303768cd12e470b5e7..55cba41eb5eb2596f940e686898ce201bc5cbe46 100644 (file)
@@ -186,13 +186,18 @@ emitRegularMap (memmap * map, bool addPublics, bool arFlag)
       /* if allocation required check is needed
          then check if the symbol really requires
          allocation only for local variables */
-      if (!sym->allocreq) continue;
 
       if (arFlag && !IS_AGGREGATE (sym->type) &&
          !(sym->_isparm && !IS_REGPARM (sym->etype)) &&
          !sym->allocreq && sym->level)
        continue;
 
+      /* for bitvar locals and parameters */
+      if (!arFlag && !sym->allocreq && sym->level 
+         && !SPEC_ABSA (sym->etype)) {
+       continue;
+      }
+
       /* if global variable & not static or extern
          and addPublics allowed then add it to the public set */
       if ((sym->level == 0 ||