41 lines
		
	
	
		
			537 B
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			537 B
		
	
	
	
		
			Plaintext
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s
 | 
						|
 | 
						|
@protocol P @end
 | 
						|
@interface I @end
 | 
						|
 | 
						|
struct X { X(); };
 | 
						|
 | 
						|
void test1(X x) {
 | 
						|
  void *cft;
 | 
						|
  id oct = (id)cft;
 | 
						|
 | 
						|
  Class ccct;
 | 
						|
  ccct = (Class)cft;
 | 
						|
 | 
						|
  I* iict = (I*)cft;
 | 
						|
 | 
						|
  id<P> qid = (id<P>)cft;
 | 
						|
 | 
						|
  I<P> *ip = (I<P>*)cft;
 | 
						|
 | 
						|
  (id)x; // expected-error {{cannot convert 'X' to 'id' without a conversion operator}}
 | 
						|
 | 
						|
  id *pid = (id*)ccct;
 | 
						|
 | 
						|
  id<P> *qpid = (id<P>*)ccct;
 | 
						|
 | 
						|
  int **pii;
 | 
						|
 | 
						|
  ccct = (Class)pii;
 | 
						|
 | 
						|
  qpid = (id<P>*)pii;
 | 
						|
 | 
						|
  iict = (I*)pii;
 | 
						|
 | 
						|
  pii = (int **)ccct;
 | 
						|
 | 
						|
  pii = (int **)qpid;
 | 
						|
  
 | 
						|
}
 | 
						|
 |