1/* Test for cross x86_64<->w64 abi va_list calls. */ 2/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */ 3 4#include <stdarg.h> 5 6extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *); 7extern int __attribute__ ((sysv_abi)) sprintf (char *, const char *, ...); 8 9static void 10vdo_cpy (char *s, va_list argp) 11{ 12 __SIZE_TYPE__ len; 13 char *r = s; 14 char *e; 15 *r = 0; 16 for (;;) { 17 e = va_arg (argp, char *); 18 if (*e == 0) break; 19 sprintf (r,"%s", e); 20 r += strlen (r); 21 } 22} 23 24void 25do_cpy (char *s, ...) 26{ 27 va_list argp; 28 va_start (argp, s); 29 vdo_cpy (s, argp); 30 va_end (argp); 31} 32