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