* src/SDCCast.c (processParms): fixed bug 2783061 by applying patch from
[fw/sdcc] / support / regression / tests / bug2783061.c
1 /*
2     bug 2783061
3 */
4
5 #include <stdarg.h>
6 #include <testfwk.h>
7
8 #define CP      (void code*)0x1234
9 #define XP      (void xdata*)0x5678
10
11 void varargs_fn(char k, ...)
12 {
13         va_list arg;
14         void code * cp;
15         void xdata * xp;
16         void * gp;
17
18         va_start (arg, k);
19
20         cp = va_arg(arg, void code *);
21         ASSERT(cp == CP);
22         xp = va_arg(arg, void xdata *);
23         ASSERT(xp == XP);
24         gp = va_arg(arg, void *);
25         ASSERT(gp == (void *)CP);
26         gp = va_arg(arg, void *);
27         ASSERT(gp == (void *)XP);
28
29         va_end (arg);
30 }
31
32 void
33 testBug(void)
34 {
35         void code * cp = CP;
36         void xdata * xp = XP;
37
38         varargs_fn('k', (void code *)cp, (void xdata *)xp, cp, xp);
39 }