}
/* if code change to constant */
- if (SPEC_SCLS (sym->etype) == S_CODE ||
- SPEC_SCLS (sym->etype) == S_CONSTANT)
- {
- SPEC_OCLS (sym->etype) = statsg;
- allocIntoSeg (sym);
- return;
- }
+ if (SPEC_SCLS (sym->etype) == S_CODE) {
+ SPEC_OCLS (sym->etype) = statsg;
+ allocIntoSeg (sym);
+ return;
+ }
if (SPEC_SCLS (sym->etype) == S_XDATA)
{
allocIntoSeg (lval->sym);
}
else
- { /* allocate them in the automatic space */
+ { /* allocate them in the automatic space */
/* generate a unique name */
sprintf (lval->sym->rname, "%s%s_PARM_%d", port->fun_prefix, currFunc->name, pNum);
strcpy (lval->name, lval->sym->rname);
-
+
/* if declared in external storage */
if (SPEC_SCLS (lval->etype) == S_XDATA)
SPEC_OCLS (lval->etype) = SPEC_OCLS (lval->sym->etype) = xdata;
note here that we put it into the overlay segment
first, we will remove it from the overlay segment
after the overlay determination has been done */
- if (options.model == MODEL_SMALL)
- {
- SPEC_OCLS (lval->etype) = SPEC_OCLS (lval->sym->etype) =
- (options.model == MODEL_SMALL ? port->mem.default_local_map :
- (options.noOverlay ? port->mem.default_local_map
- : overlay));
- }
- else
- {
- SPEC_SCLS (lval->etype) = S_XDATA;
- SPEC_OCLS (lval->etype) = SPEC_OCLS (lval->sym->etype) = xdata;
- }
+ if (options.model == MODEL_SMALL)
+ {
+ SPEC_OCLS (lval->etype) = SPEC_OCLS (lval->sym->etype) =
+ (options.noOverlay ? port->mem.default_local_map
+ : overlay);
+ }
+ else
+ {
+ SPEC_SCLS (lval->etype) = S_XDATA;
+ SPEC_OCLS (lval->etype) = SPEC_OCLS (lval->sym->etype) = xdata;
+ }
allocIntoSeg (lval->sym);
}
}
strcpy (lval->sym->rname, buffer);
strcpy (lval->name, strcpy (lval->sym->name, lval->sym->rname));
addSym (SymbolTab, lval->sym, lval->sym->name,
- lval->sym->level, lval->sym->block);
+ lval->sym->level, lval->sym->block, 1);
lval->sym->_isparm = 1;
addSet (&operKeyReset, lval->sym);
}
/* this is automatic */
/* if it to be placed on the stack */
- if (options.stackAuto || reentrant)
- {
-
- sym->onStack = 1;
- if (options.useXstack)
- {
- /* PENDING: stack direction for xstack */
- SPEC_OCLS (sym->etype) = xstack;
- SPEC_STAK (sym->etype) = sym->stack = (xstackPtr + 1);
- xstackPtr += getSize (sym->type);
- }
- else
- {
- SPEC_OCLS (sym->etype) = istack;
- if (port->stack.direction > 0)
- {
- SPEC_STAK (sym->etype) = sym->stack = (stackPtr + 1);
- stackPtr += getSize (sym->type);
- }
- else
- {
- stackPtr -= getSize (sym->type);
- SPEC_STAK (sym->etype) = sym->stack = stackPtr;
- }
- }
- allocIntoSeg (sym);
- return;
+ if (options.stackAuto || reentrant) {
+ sym->onStack = 1;
+ if (options.useXstack) {
+ /* PENDING: stack direction for xstack */
+ SPEC_OCLS (sym->etype) = xstack;
+ SPEC_STAK (sym->etype) = sym->stack = (xstackPtr + 1);
+ xstackPtr += getSize (sym->type);
+ } else {
+ SPEC_OCLS (sym->etype) = istack;
+ if (port->stack.direction > 0) {
+ SPEC_STAK (sym->etype) = sym->stack = (stackPtr + 1);
+ stackPtr += getSize (sym->type);
+ } else {
+ stackPtr -= getSize (sym->type);
+ SPEC_STAK (sym->etype) = sym->stack = stackPtr;
+ }
}
-
+ allocIntoSeg (sym);
+ return;
+ }
+
/* else depending on the storage class specified */
if (SPEC_SCLS (sym->etype) == S_XDATA)
{
return;
}
- if ((SPEC_SCLS (sym->etype) == S_CODE ||
- SPEC_SCLS (sym->etype) == S_CONSTANT) &&
- !sym->_isparm)
- {
- SPEC_OCLS (sym->etype) = statsg;
- allocIntoSeg (sym);
- return;
- }
-
+ if (SPEC_SCLS (sym->etype) == S_CODE && !sym->_isparm) {
+ SPEC_OCLS (sym->etype) = statsg;
+ allocIntoSeg (sym);
+ return;
+ }
+
if (SPEC_SCLS (sym->etype) == S_IDATA)
{
SPEC_OCLS (sym->etype) = idata;
/* again note that we have put it into the overlay segment
will remove and put into the 'data' segment if required after
overlay analysis has been done */
- SPEC_OCLS (sym->etype) = (options.model == MODEL_SMALL ? port->mem.default_local_map :
- (options.noOverlay ? port->mem.default_local_map
- : overlay));
+ if (options.model == MODEL_SMALL) {
+ SPEC_OCLS (sym->etype) =
+ (options.noOverlay ? port->mem.default_local_map
+ : overlay);
+ } else {
+ SPEC_OCLS (sym->etype) = port->mem.default_local_map;
+ }
allocIntoSeg (sym);
}
if (csym && csym->level == sym->level)
werror (E_DUPLICATE_TYPEDEF, sym->name);
- addSym (TypedefTab, sym, sym->name, sym->level, sym->block);
+ addSym (TypedefTab, sym, sym->name, sym->level, sym->block, 0);
continue; /* go to the next one */
}
/* make sure it already exist */
/* if the debug option is set then output the
symbols to the map file */
- if (options.debug && !options.nodebug)
+ if (options.debug)
{
for (sym = setFirstItem (istack->syms); sym;
sym = setNextItem (istack->syms))