X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCsymt.h;h=4e3340dbe81dd59b997d165ee0b02e0d6fd3ae30;hb=98a8cc0a546d822058cccec0ddb8d8498ea69b7e;hp=cf8097ea7a94e6ea7606ae5e55fe13b6eae6de1f;hpb=1fe6dcfaa0ec9449238f2cfe84ca47650e28d290;p=fw%2Fsdcc diff --git a/src/SDCCsymt.h b/src/SDCCsymt.h index cf8097ea..4e3340db 100644 --- a/src/SDCCsymt.h +++ b/src/SDCCsymt.h @@ -380,8 +380,9 @@ extern sym_link *validateLink(sym_link *l, #define IFFUNC_ISOVERLAY(x) (IS_FUNC(x) && FUNC_ISOVERLAY(x)) #define IFFUNC_ISBANKEDCALL(x) (!IFFUNC_NONBANKED(x) && \ - (options.model == MODEL_LARGE || \ - options.model == MODEL_MEDIUM || \ + (options.model == MODEL_HUGE || \ + ((options.model == MODEL_LARGE || options.model == MODEL_MEDIUM) && \ + (TARGET_IS_Z80 || TARGET_IS_GBZ80)) || \ IFFUNC_BANKED(x))) #define SPEC_NOUN(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.noun @@ -432,6 +433,7 @@ extern sym_link *validateLink(sym_link *l, #define IS_FARPTR(x) (IS_DECL(x) && DCL_TYPE(x) == FPOINTER) #define IS_CODEPTR(x) (IS_DECL(x) && DCL_TYPE(x) == CPOINTER) #define IS_GENPTR(x) (IS_DECL(x) && DCL_TYPE(x) == GPOINTER) +#define IS_FUNCPTR(x) (IS_DECL(x) && (DCL_TYPE(x) == CPOINTER || DCL_TYPE(x) == GPOINTER) && IS_FUNC(x->next)) #define IS_FUNC(x) (IS_DECL(x) && DCL_TYPE(x) == FUNCTION) #define IS_LONG(x) (IS_SPEC(x) && x->select.s._long) #define IS_UNSIGNED(x) (IS_SPEC(x) && x->select.s._unsigned)