1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#define INTEGER_ARG 5 extern void abort(void); static void foo(int arg) { if (arg != INTEGER_ARG) abort(); } static void bar(int arg) { foo(arg); __builtin_apply(foo, __builtin_apply_args(), 16); } int main(void) { bar(INTEGER_ARG); return 0; }