builtin_05_va_copy.c (363B)
1 int sum2x(int n, ...) { 2 __builtin_va_list ap, ap2; 3 __builtin_va_start(ap, n); 4 __builtin_va_copy(ap2, ap); 5 int s = 0; 6 for (int i = 0; i < n; i++) s += __builtin_va_arg(ap, int); 7 for (int i = 0; i < n; i++) s += __builtin_va_arg(ap2, int); 8 __builtin_va_end(ap); 9 __builtin_va_end(ap2); 10 return s; 11 } 12 13 int test_main(void) { return sum2x(2, 10, 11); }