typedef __builtin_va_list __gnuc_va_list; typedef __gnuc_va_list va_list; struct X { int y; }; void func(va_list va) { char* a = __builtin_va_arg(va, char**)[0]; int b = __builtin_va_arg(va, struct X*)->y; }