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 6#define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll 7 8static int __attribute__ ((sysv_abi)) 9fct1 (va_list argp, ...) 10{ 11 long long p1,p2; 12 int ret = 1; 13 __builtin_sysv_va_list argp_2; 14 15 __builtin_sysv_va_start (argp_2, argp); 16 do { 17 p1 = va_arg (argp_2, long long); 18 p2 = va_arg (argp, long long); 19 if (p1 != p2) 20 ret = 0; 21 } while (ret && p1 != 0); 22 __builtin_sysv_va_end (argp_2); 23 24 return ret; 25} 26 27int 28fct2 (int dummy, ...) 29{ 30 va_list argp; 31 int ret = dummy; 32 33 va_start (argp, dummy); 34 ret += fct1 (argp, SZ_ARGS); 35 va_end (argp); 36 return ret; 37} 38