27 lines
		
	
	
		
			832 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			832 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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}}
 | 
