1 /* RUN: %clang_cc1 -fsyntax-only %s -verify
2  */
3 
4 typedef void Void;
5 
foo()6 void foo() {
7   int X;
8 
9   X = sizeof(int (void a));    // expected-error {{argument may not have 'void' type}}
10   X = sizeof(int (int, void)); // expected-error {{must be the first and only parameter}}
11   X = sizeof(int (void, ...)); // expected-error {{must be the first and only parameter}}
12 
13   X = sizeof(int (Void a));    // expected-error {{argument may not have 'void' type}}
14   X = sizeof(int (int, Void)); // expected-error {{must be the first and only parameter}}
15   X = sizeof(int (Void, ...)); // expected-error {{must be the first and only parameter}}
16 
17   // Accept these.
18   X = sizeof(int (void));
19   X = sizeof(int (Void));
20 }
21 
22 // this is ok.
bar(Void)23 void bar(Void) {
24 }
25 
26 void f(const void);            // expected-error {{parameter must not have type qualifiers}}
27