/* RUN: %clang_cc1 -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}}
