- fixed comment: bs cannot be NULL anymore (and was never NULL previously)
[libfirm] / ir / be / test / valist.c
1 #include <stdio.h>
2
3 #if defined(__FIRM_MAJOR__) && defined(__GNUC__)
4 #define va_start(v,l)   __builtin_va_start(v,l)
5 #define va_end(v)       __builtin_va_end(v)
6 #define va_arg(v,l)     __builtin_va_arg(v,l)
7 #define va_copy(d,s)    __builtin_va_copy(d,s)
8
9 typedef __builtin_va_list __gnuc_va_list;
10 typedef __gnuc_va_list va_list;
11
12 #else
13 #include <stdarg.h>
14 #endif
15
16 char * foo(char *fmt, ...) {
17      va_list ap;
18      char *s;
19
20      va_start(ap, fmt);
21      s = va_arg(ap, char *);
22      va_end(ap);
23      return s;
24 }
25
26 int main()
27 {
28   printf("<%s>\n", foo("bla", "blup"));
29   return 0;
30 }