(sym->_isparm && !IS_REGPARM (sym->etype))) &&
addPublics &&
!IS_STATIC (sym->etype) &&
- (sym->used || sym->fbody))
+ (IS_FUNC(sym->type) ? (sym->used || sym->fbody) : 1))
{
addSetHead (&publics, sym);
}
allocInfo = 1;
/* if the ival was a symbol, delete it from its segment */
- if ((symIval=AST_SYMBOL(sym->ival->init.node))) {
+ if (IS_AST_SYM_VALUE(sym->ival->init.node)) {
+ symIval=AST_SYMBOL(sym->ival->init.node);
segment = SPEC_OCLS (symIval->etype);
deleteSetItem (&segment->syms, symIval);
}