variadic_03_long.c (330B)
1 /* va_arg for a non-int integer width: long (8 bytes on AAPCS64). */ 2 long sum_long(int n, ...) { 3 __builtin_va_list ap; 4 __builtin_va_start(ap, n); 5 long s = 0; 6 for (int i = 0; i < n; i++) s += __builtin_va_arg(ap, long); 7 __builtin_va_end(ap); 8 return s; 9 } 10 11 int test_main(void) { return (int)sum_long(3, 10L, 20L, 12L); }