1 /*
2 va-arg-16.c from the execute part of the gcc torture tests.
3 */
4
5 #include <testfwk.h>
6
7 #ifdef __SDCC
8 #pragma disable_warning 93
9 #endif
10
11 #include <stdarg.h>
12
13 #ifndef __SDCC_pdk14 // Lack of memory
14 typedef double TYPE;
15
vafunction(TYPE dummy1,TYPE dummy2,...)16 void vafunction (TYPE dummy1, TYPE dummy2, ...)
17 {
18 va_list ap;
19
20 va_start(ap, dummy2);
21 if (dummy1 != 888.)
22 ASSERT(0);
23 if (dummy2 != 999.)
24 ASSERT(0);
25 if (va_arg (ap, TYPE) != 1.)
26 ASSERT(0);
27 if (va_arg (ap, TYPE) != 2.)
28 ASSERT(0);
29 if (va_arg (ap, TYPE) != 3.)
30 ASSERT(0);
31 if (va_arg (ap, TYPE) != 4.)
32 ASSERT(0);
33 if (va_arg (ap, TYPE) != 5.)
34 ASSERT(0);
35 if (va_arg (ap, TYPE) != 6.)
36 ASSERT(0);
37 if (va_arg (ap, TYPE) != 7.)
38 ASSERT(0);
39 if (va_arg (ap, TYPE) != 8.)
40 ASSERT(0);
41 if (va_arg (ap, TYPE) != 9.)
42 ASSERT(0);
43 va_end(ap);
44 }
45 #endif
46
47 void
testTortureExecute(void)48 testTortureExecute (void)
49 {
50 #ifndef __SDCC_pdk14 // Lack of memory
51 vafunction( 888., 999., 1., 2., 3., 4., 5., 6., 7., 8., 9. );
52 return;
53 #endif
54 }
55