1 /** Bug 2373
2  */
3 #include <testfwk.h>
4 
5 #ifndef __SDCC_pdk14
func(char a)6 char 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)22 testFptr(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