PR target/59927
[official-gcc.git] / gcc / testsuite / gcc.target / x86_64 / abi / callabi / vaarg-5b.c
blobe5dd4727bdd48545e9b2521375f11a2623a28332
1 /* Test for cross x86_64<->w64 abi va_list calls. */
2 /* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
4 #include <stdarg.h>
6 #define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll
8 static int __attribute__ ((sysv_abi))
9 fct1 (va_list argp, ...)
11 long long p1,p2;
12 int ret = 1;
13 __builtin_sysv_va_list argp_2;
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);
24 return ret;
27 int
28 fct2 (int dummy, ...)
30 va_list argp;
31 int ret = dummy;
33 va_start (argp, dummy);
34 ret += fct1 (argp, SZ_ARGS);
35 va_end (argp);
36 return ret;