/* RUN: clang-cc -fsyntax-only %s -verify
 */

typedef void Void;

void foo() {
  int X;
  
  X = sizeof(int (void a));    // expected-error {{argument may not have 'void' type}}
  X = sizeof(int (int, void)); // expected-error {{must be the first and only parameter}}
  X = sizeof(int (void, ...)); // expected-error {{must be the first and only parameter}}

  X = sizeof(int (Void a));    // expected-error {{argument may not have 'void' type}}
  X = sizeof(int (int, Void)); // expected-error {{must be the first and only parameter}}
  X = sizeof(int (Void, ...)); // expected-error {{must be the first and only parameter}}

  // Accept these.
  X = sizeof(int (void));
  X = sizeof(int (Void));
}

// this is ok.
void bar(Void) {
}

void f(const void);            // expected-error {{parameter must not have type qualifiers}}
