forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			50 lines
		
	
	
		
			726 B
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			726 B
		
	
	
	
		
			Plaintext
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s
 | 
						|
 | 
						|
@interface G
 | 
						|
@end
 | 
						|
 | 
						|
@interface F
 | 
						|
- (void)bar:(id *)objects;
 | 
						|
- (void)foo:(G**)objects;
 | 
						|
@end
 | 
						|
 | 
						|
 | 
						|
void a() {
 | 
						|
	F *b;
 | 
						|
	G **keys;
 | 
						|
	[b bar:keys];
 | 
						|
 | 
						|
	id *PID;
 | 
						|
	[b foo:PID];
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
// pr7936
 | 
						|
@interface I1 @end
 | 
						|
 | 
						|
class Wrapper {
 | 
						|
public:
 | 
						|
  operator id() const { return (id)_value; }
 | 
						|
  operator Class() const { return (Class)_value; }
 | 
						|
  operator I1*() const { return (I1*)_value; }
 | 
						|
 | 
						|
  bool Compare(id obj) { return *this == obj; }
 | 
						|
  bool CompareClass(Class obj) { return *this == obj; }
 | 
						|
  bool CompareI1(I1* obj) { return *this == obj; }
 | 
						|
 | 
						|
  Wrapper &operator*();
 | 
						|
  Wrapper &operator[](int);
 | 
						|
  Wrapper& operator->*(int);
 | 
						|
 | 
						|
private:
 | 
						|
  long _value;
 | 
						|
};
 | 
						|
 | 
						|
void f() {
 | 
						|
  Wrapper w;
 | 
						|
  w[0];
 | 
						|
  *w;
 | 
						|
  w->*(0);
 | 
						|
}
 |