1 /* 2 bug3410620.c 3 bank: 1, 2 4 */ 5 6 #include <testfwk.h> 7 8 #define INTREGBANK {bank} 9 10 #if defined(__SDCC_mcs51) || defined (__SDCC_ds390) 11 handler1(void)12void handler1(void) __using(INTREGBANK) 13 { 14 } 15 16 typedef void (*phandler_t)(void) __using(INTREGBANK); 17 phandler_t phandlers[8] = {handler1}; 18 19 volatile unsigned char GetInterruptSource; //some dummy for real hardware 20 21 /* No need to call this, threw 22 warning 139: call via function pointer in ISR using non-zero register bank. 23 Cannot determine which register bank to save.*/ Int0_isr(void)24void Int0_isr(void) __interrupt(0) __using(1) 25 { 26 unsigned char intsrc; 27 intsrc = GetInterruptSource; 28 phandlers[intsrc](); // warning 139 refers to this line 29 } 30 31 #endif 32 testBug(void)33void testBug(void) 34 { 35 ASSERT (1); 36 } 37