1 /* { dg-require-effective-target indirect_jumps } */
3 typedef long unsigned int size_t;
4 extern void abort (void);
5 extern char *strcpy (char *, const char *);
6 extern int strcmp (const char *, const char *);
7 typedef __builtin_va_list
va_list;
8 static const char null
[] = "(null)";
9 int g (char *s
, const char *format
, va_list ap
)
14 static const void *step0_jumps
[] = {
25 goto *(step0_jumps
[2]);
27 /* begin switch table. */
30 __builtin_va_arg (ap
, int);
32 goto *(step0_jumps
[2]);
35 __builtin_va_arg (ap
, unsigned long int);
39 string
= __builtin_va_arg (ap
, const char *);
42 /* End of switch table. */
53 f (char *s
, const char *f
, ...)
56 __builtin_va_start (ap
, f
);
58 __builtin_va_end (ap
);
65 f (buf
, "%s", "asdf", 0);
66 if (strcmp (buf
, "asdf"))