X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCsymt.c;h=02fad1ff6f0940058bf71e62b7c4c5b672624ee2;hb=f43be8b5c132bcd1a1b4783840d7e292cfec0370;hp=0668357471091591094009f357f3dd20dc568226;hpb=7e85609884eda439265cfc7f140fe9e8303892d5;p=fw%2Fsdcc diff --git a/src/SDCCsymt.c b/src/SDCCsymt.c index 06683574..02fad1ff 100644 --- a/src/SDCCsymt.c +++ b/src/SDCCsymt.c @@ -420,7 +420,7 @@ link *mergeSpec ( link *dest, link *src ) SPEC_BLEN(dest) |= SPEC_BLEN(src); SPEC_BSTR(dest) |= SPEC_BSTR(src); SPEC_TYPEDEF(dest) |= SPEC_TYPEDEF(src); - SPEC_BANKED(dest) |= SPEC_BANKED(src); + SPEC_NONBANKED(dest) |= SPEC_NONBANKED(src); if ( IS_STRUCT(dest) && SPEC_STRUCT(dest) == NULL ) SPEC_STRUCT(dest) = SPEC_STRUCT(src); @@ -1019,8 +1019,8 @@ static void checkSClass ( symbol *sym ) SPEC_SCLS(sym->etype) = (options.useXstack ? S_XSTACK : S_STACK ) ; else - SPEC_SCLS(sym->etype) = (options.useXstack ? - S_XDATA :S_DATA ) ; + SPEC_SCLS(sym->etype) = (options.model ? + S_XDATA : S_DATA ) ; } } @@ -1372,8 +1372,9 @@ int checkFunction (symbol *sym) deleteSym (SymbolTab,csym,csym->name); addSym (SymbolTab,sym,sym->name,sym->level,sym->block); if (IS_EXTERN(csym->etype) && ! - IS_EXTERN(sym->etype)) + IS_EXTERN(sym->etype)) { addSet(&publics,sym); + } return 1 ; } @@ -1974,6 +1975,7 @@ void initCSupport () ssu[su], sbwd[bwd]); __muldiv[muldivmod][bwd][su] = funcOfType(buffer, __multypes[bwd][su], __multypes[bwd][su], 2, options.intlong_rent); + SPEC_NONBANKED(__muldiv[muldivmod][bwd][su]->etype) = 1; #if ENABLE_MICHAELH_REGPARM_HACK if (bwd < 2) _makeRegParam(__muldiv[muldivmod][bwd][su]);