2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 920726-1.c
blobd6042c9f5d13099de84273d8eaa804ebfb2b865e
1 #include <stdio.h>
2 #include <stdarg.h>
4 struct spurious
6 int anumber;
7 };
9 int first(char *buf, char *fmt, ...)
11 int pos, number;
12 va_list args;
13 int dummy;
14 char *bp = buf;
16 va_start(args, fmt);
17 for (pos = 0; fmt[pos]; pos++)
18 if (fmt[pos] == 'i')
20 number = va_arg(args, int);
21 sprintf(bp, "%d", number);
22 bp += strlen(bp);
24 else
25 *bp++ = fmt[pos];
27 va_end(args);
28 *bp = 0;
29 return dummy;
32 struct spurious second(char *buf,char *fmt, ...)
34 int pos, number;
35 va_list args;
36 struct spurious dummy;
37 char *bp = buf;
39 va_start(args, fmt);
40 for (pos = 0; fmt[pos]; pos++)
41 if (fmt[pos] == 'i')
43 number = va_arg(args, int);
44 sprintf(bp, "%d", number);
45 bp += strlen(bp);
47 else
48 *bp++ = fmt[pos];
50 va_end(args);
51 *bp = 0;
52 return dummy;
55 main()
57 char buf1[100], buf2[100];
58 first(buf1, "i i ", 5, 20);
59 second(buf2, "i i ", 5, 20);
60 if (strcmp ("5 20 ", buf1) || strcmp ("5 20 ", buf2))
61 abort();
62 exit(0);