summaryrefslogtreecommitdiff
path: root/src/SDCCglue.c
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2019-10-22 17:53:04 +0200
committerXavier ASUS <xavi92psx@gmail.com>2019-10-22 17:53:04 +0200
commited26eb00026800d1d2ff6289627216c7d1f0d459 (patch)
treeca4541d51c38453f614d6a9793e451781b8dfe13 /src/SDCCglue.c
parentb679eaad41904e797ba27ea0c4c2be0a0ab4b830 (diff)
downloadsdcc-gas-ed26eb00026800d1d2ff6289627216c7d1f0d459.tar.gz
Ignored options.const_seg and initializer->sname
options.gasOutput is not defined yet when these options above are assigned, so they hold invalid values.
Diffstat (limited to 'src/SDCCglue.c')
-rw-r--r--src/SDCCglue.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/SDCCglue.c b/src/SDCCglue.c
index 7af8bf8..dfb988b 100644
--- a/src/SDCCglue.c
+++ b/src/SDCCglue.c
@@ -260,6 +260,7 @@ emitRegularMap (memmap *map, bool addPublics, bool arFlag)
in the static seg */
newSym = copySymbol (sym);
SPEC_OCLS (newSym->etype) = (SPEC_OCLS (sym->etype) == xidata) ? xinit : initializer;
+
SNPRINTF (newSym->name, sizeof (newSym->name), options.gasOutput ? "%s" : "__xinit_%s", sym->name);
SNPRINTF (newSym->rname, sizeof (newSym->rname), options.gasOutput ? "%s" : "__xinit_%s", sym->rname);
@@ -2074,7 +2075,7 @@ emitMaps (void)
emitRegularMap (code, TRUE, FALSE);
if (options.const_seg)
- dbuf_tprintf (&code->oBuf, "\t!area\n", options.const_seg);
+ dbuf_tprintf (&code->oBuf, "\t!area\n", CONST_NAME);
emitStaticSeg (statsg, &code->oBuf);
if (port->genXINIT)
@@ -2084,7 +2085,7 @@ emitMaps (void)
}
if (initializer)
{
- dbuf_tprintf (&code->oBuf, "\t!area\n", initializer->sname);
+ dbuf_tprintf (&code->oBuf, "\t!area\n", INITIALIZER_NAME);
emitStaticSeg (initializer, &code->oBuf);
}
dbuf_tprintf (&code->oBuf, "\t!area\n", c_abs->sname);