1 /** Bug 2373 2 */ 3 #include <testfwk.h> 4 5 #ifndef __SDCC_pdk14 func(char a)6char func(char a) 7 { 8 return a-1; 9 } 10 11 static char a; 12 13 static struct 14 { 15 char c; 16 } s; 17 18 static char (* __xdata func_ptr) (char); 19 #endif 20 21 void testFptr(void)22testFptr(void) 23 { 24 #if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) 25 char b = 10; 26 a = 10; 27 s.c = 10; 28 29 func_ptr=func; 30 31 // works as expected 32 ASSERT(func_ptr(a) == 9); 33 ASSERT(func_ptr(b) == 9); 34 35 // error passing s.c to func 36 ASSERT(func_ptr(s.c) == 9); 37 #endif 38 } 39 40