// Build don't link:

// Bug 845. We were treating __builtin_va_arg as a unary expr, not a primary,
// and hence getting parse errors.

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, X*)->y;
}
