/* __builtin_ms_va_list is only supported for -m64. */ /* { dg-do run { target lp64 } } */ /* { dg-require-effective-target lto } */ /* { dg-options "-flto" } */ #include int __attribute__((ms_abi)) foo (int n, ...) { __builtin_ms_va_list ap; int sum = 0; __builtin_ms_va_start (ap, n); while (n--) { sum += __builtin_va_arg (ap, int); printf ("sum = %d\n", sum); } __builtin_ms_va_end (ap); return sum; } int main (void) { int res = foo (10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); if (res != 55) __builtin_abort (); return 0; }