mmmm, that could be better
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 17 Dec 2001 17:41:43 +0000 (17:41 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 17 Dec 2001 17:41:43 +0000 (17:41 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1688 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/SDCCglue.c
src/SDCCmem.c

index a0f982254f7dc92083c4f27e28e112f57763778b..e100f5bb39ba794a02d58408ec06a94ed234db47 100644 (file)
@@ -239,7 +239,7 @@ emitRegularMap (memmap * map, bool addPublics, bool arFlag)
          sprintf (newSym->name, "_xinit_%s", sym->name);
          sprintf (newSym->rname,"_xinit_%s", sym->rname);
          SPEC_CONST(newSym->etype)=1;
-         SPEC_STAT(newSym->etype)=1;
+         //SPEC_STAT(newSym->etype)=1;
          addSym (SymbolTab, newSym, newSym->name, 0, 0, 1);
          
          // add it to the "XINIT (CODE)" segment
index 7e6c60b7349601954f95e6d2e08b3501a2fe88b5..afbcdec2b62154360be9139a60a2f8527ff1a043 100644 (file)
@@ -264,11 +264,6 @@ void
 allocIntoSeg (symbol * sym)
 {
   memmap *segment = SPEC_OCLS (sym->etype);
-  // should we move this to the initialized data segment?
-  if (port->genXINIT && segment==xdata &&
-      sym->ival && sym->level==0 && !SPEC_ABSA(sym->etype)) {
-    segment=SPEC_OCLS(sym->etype)=xidata;
-  }
   addSet (&segment->syms, sym);
 }
 
@@ -394,6 +389,12 @@ allocGlobal (symbol * sym)
   if (SPEC_SCLS (sym->etype) == S_XDATA)
     {
       SPEC_OCLS (sym->etype) = xdata;
+      // should we move this to the initialized data segment?
+      if (port->genXINIT &&
+         sym->ival && (sym->level==0) && !SPEC_ABSA(sym->etype)) {
+       SPEC_OCLS(sym->etype)=xidata;
+       addSet(&xidata->syms, sym);
+      }
       allocIntoSeg (sym);
       return;
     }