45 lines
		
	
	
		
			615 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			615 B
		
	
	
	
		
			C
		
	
	
	
/* RUN: %clang_cc1 -fsyntax-only -verify -std=c90 -pedantic %s
 | 
						|
 */
 | 
						|
void
 | 
						|
foo (void)
 | 
						|
{
 | 
						|
 struct b;
 | 
						|
 struct b* x = 0;
 | 
						|
 struct b* y = &*x;
 | 
						|
}
 | 
						|
 | 
						|
void foo2 (void)
 | 
						|
{
 | 
						|
 typedef int (*arrayptr)[];
 | 
						|
 arrayptr x = 0;
 | 
						|
 arrayptr y = &*x;
 | 
						|
}
 | 
						|
 | 
						|
void foo3 (void)
 | 
						|
{
 | 
						|
 void* x = 0;
 | 
						|
 void* y = &*x; /* expected-warning{{address of an expression of type 'void'}} */
 | 
						|
}
 | 
						|
 | 
						|
extern const void cv1;
 | 
						|
 | 
						|
const void *foo4 (void)
 | 
						|
{
 | 
						|
  return &cv1;
 | 
						|
}
 | 
						|
 | 
						|
extern void cv2;
 | 
						|
void *foo5 (void)
 | 
						|
{
 | 
						|
  return &cv2; /* expected-warning{{address of an expression of type 'void'}} */
 | 
						|
}
 | 
						|
 | 
						|
typedef const void CVT;
 | 
						|
extern CVT cv3;
 | 
						|
 | 
						|
const void *foo6 (void)
 | 
						|
{
 | 
						|
  return &cv3;
 | 
						|
}
 | 
						|
 |