Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / gcc.c-torture / execute / va-arg-10.c
blob5ce3453acb6c6d26f87c893d716df0f7af0d985e
1 /* This is a modfied version of va-arg-9.c to test va_copy. */
3 #include <stdarg.h>
5 #ifndef va_copy
6 #define va_copy __va_copy
7 #endif
9 extern __SIZE_TYPE__ strlen (const char *);
11 int
12 to_hex (unsigned int a)
14 static char hex[] = "0123456789abcdef";
16 if (a > 15)
17 abort ();
18 return hex[a];
21 void
22 fap (int i, char* format, va_list ap)
24 va_list apc;
25 char *formatc;
27 va_copy (apc, ap);
28 formatc = format;
30 if (strlen (format) != 16 - i)
31 abort ();
32 while (*format)
33 if (*format++ != to_hex (va_arg (ap, int)))
34 abort ();
35 while (*formatc)
36 if (*formatc++ != to_hex (va_arg (apc, int)))
37 abort ();
40 void
41 f0 (char* format, ...)
43 va_list ap;
45 va_start (ap, format);
46 fap(0, format, ap);
47 va_end(ap);
50 void
51 f1 (int a1, char* format, ...)
53 va_list ap;
55 va_start(ap, format);
56 fap(1, format, ap);
57 va_end(ap);
60 void
61 f2 (int a1, int a2, char* format, ...)
63 va_list ap;
65 va_start(ap, format);
66 fap(2, format, ap);
67 va_end(ap);
70 void
71 f3 (int a1, int a2, int a3, char* format, ...)
73 va_list ap;
75 va_start(ap, format);
76 fap(3, format, ap);
77 va_end(ap);
80 void
81 f4 (int a1, int a2, int a3, int a4, char* format, ...)
83 va_list ap;
85 va_start(ap, format);
86 fap(4, format, ap);
87 va_end(ap);
90 void
91 f5 (int a1, int a2, int a3, int a4, int a5,
92 char* format, ...)
94 va_list ap;
96 va_start(ap, format);
97 fap(5, format, ap);
98 va_end(ap);
101 void
102 f6 (int a1, int a2, int a3, int a4, int a5,
103 int a6,
104 char* format, ...)
106 va_list ap;
108 va_start(ap, format);
109 fap(6, format, ap);
110 va_end(ap);
113 void
114 f7 (int a1, int a2, int a3, int a4, int a5,
115 int a6, int a7,
116 char* format, ...)
118 va_list ap;
120 va_start(ap, format);
121 fap(7, format, ap);
122 va_end(ap);
125 void
126 f8 (int a1, int a2, int a3, int a4, int a5,
127 int a6, int a7, int a8,
128 char* format, ...)
130 va_list ap;
132 va_start(ap, format);
133 fap(8, format, ap);
134 va_end(ap);
137 void
138 f9 (int a1, int a2, int a3, int a4, int a5,
139 int a6, int a7, int a8, int a9,
140 char* format, ...)
142 va_list ap;
144 va_start(ap, format);
145 fap(9, format, ap);
146 va_end(ap);
149 void
150 f10 (int a1, int a2, int a3, int a4, int a5,
151 int a6, int a7, int a8, int a9, int a10,
152 char* format, ...)
154 va_list ap;
156 va_start(ap, format);
157 fap(10, format, ap);
158 va_end(ap);
161 void
162 f11 (int a1, int a2, int a3, int a4, int a5,
163 int a6, int a7, int a8, int a9, int a10,
164 int a11,
165 char* format, ...)
167 va_list ap;
169 va_start(ap, format);
170 fap(11, format, ap);
171 va_end(ap);
174 void
175 f12 (int a1, int a2, int a3, int a4, int a5,
176 int a6, int a7, int a8, int a9, int a10,
177 int a11, int a12,
178 char* format, ...)
180 va_list ap;
182 va_start(ap, format);
183 fap(12, format, ap);
184 va_end(ap);
187 void
188 f13 (int a1, int a2, int a3, int a4, int a5,
189 int a6, int a7, int a8, int a9, int a10,
190 int a11, int a12, int a13,
191 char* format, ...)
193 va_list ap;
195 va_start(ap, format);
196 fap(13, format, ap);
197 va_end(ap);
200 void
201 f14 (int a1, int a2, int a3, int a4, int a5,
202 int a6, int a7, int a8, int a9, int a10,
203 int a11, int a12, int a13, int a14,
204 char* format, ...)
206 va_list ap;
208 va_start(ap, format);
209 fap(14, format, ap);
210 va_end(ap);
213 void
214 f15 (int a1, int a2, int a3, int a4, int a5,
215 int a6, int a7, int a8, int a9, int a10,
216 int a11, int a12, int a13, int a14, int a15,
217 char* format, ...)
219 va_list ap;
221 va_start(ap, format);
222 fap(15, format, ap);
223 va_end(ap);
226 main ()
228 char *f = "0123456789abcdef";
230 f0 (f+0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
231 f1 (0, f+1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
232 f2 (0, 1, f+2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
233 f3 (0, 1, 2, f+3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
234 f4 (0, 1, 2, 3, f+4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
235 f5 (0, 1, 2, 3, 4, f+5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
236 f6 (0, 1, 2, 3, 4, 5, f+6, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
237 f7 (0, 1, 2, 3, 4, 5, 6, f+7, 7, 8, 9, 10, 11, 12, 13, 14, 15);
238 f8 (0, 1, 2, 3, 4, 5, 6, 7, f+8, 8, 9, 10, 11, 12, 13, 14, 15);
239 f9 (0, 1, 2, 3, 4, 5, 6, 7, 8, f+9, 9, 10, 11, 12, 13, 14, 15);
240 f10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, f+10, 10, 11, 12, 13, 14, 15);
241 f11 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, f+11, 11, 12, 13, 14, 15);
242 f12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, f+12, 12, 13, 14, 15);
243 f13 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, f+13, 13, 14, 15);
244 f14 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, f+14, 14, 15);
245 f15 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, f+15, 15);
247 exit (0);