accepts --xram-size 0 (no ext ram)
[fw/sdcc] / src / SDCCglue.c
index 6b100947609d50c93f57cd255e586c900ac944ab..dbe42484362bdc2b8f5de107e05a6e5d3ba297d6 100644 (file)
@@ -256,6 +256,7 @@ emitRegularMap (memmap * map, bool addPublics, bool arFlag)
          sprintf (newSym->rname,"__xinit_%s", sym->rname);
          SPEC_CONST(newSym->etype)=1;
          SPEC_STAT(newSym->etype)=1;
+         resolveIvalSym(newSym->ival);
 
          // add it to the "XINIT (CODE)" segment
          addSet(&xinit->syms, newSym);
@@ -1153,6 +1154,11 @@ emitStaticSeg (memmap * map, FILE * out)
              resolveIvalSym (sym->ival);
              printIval (sym, sym->type, sym->ival, out);
              noAlloc--;
+             // if sym->ival is a string, WE don't need it anymore
+             if (IS_AST_SYM_VALUE(list2expr(sym->ival)) &&
+                 list2val(sym->ival)->sym->isstrlit) {
+               freeStringSymbol(list2val(sym->ival)->sym);
+             }
            }
          else {
              /* allocate space */