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