// RUN: %clang_cc1 -fsyntax-only -verify %s

typedef int TInt;

static void test() {
  int *pi;

  int typeof (int) aIntInt; // expected-error{{cannot combine with previous 'int' declaration specifier}}
  short typeof (int) aShortInt; // expected-error{{'short typeof' is invalid}} 
  int int ttt; // expected-error{{cannot combine with previous 'int' declaration specifier}}
  typeof(TInt) anInt; 
  short TInt eee; // expected-error{{expected ';' at end of declaration}}
  void ary[7] fff; // expected-error{{array has incomplete element type 'void'}} expected-error{{expected ';' at end of declaration}}
  typeof(void ary[7]) anIntError; // expected-error{{expected ')'}} expected-note {{to match this '('}}  expected-error {{variable has incomplete type 'typeof(void)' (aka 'void')}}
  typeof(const int) aci; 
  const typeof (*pi) aConstInt; 
  int xx;
  int *i;
}

// <rdar://problem/8237491>
void test2() {
    int a;
    short b;
    __typeof__(a) (*f)(__typeof__(b));    
}
