forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			717 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			717 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++0x
 | |
| 
 | |
| struct A {};
 | |
| 
 | |
| struct R {
 | |
|     operator const A*();
 | |
| };
 | |
| 
 | |
| 
 | |
| struct B  : R {
 | |
|     operator A*();
 | |
| };
 | |
| 
 | |
| struct C : B {
 | |
| 
 | |
| };
 | |
| 
 | |
| 
 | |
| void foo(C c, int A::* pmf) {
 | |
|        				// FIXME. Why so many built-in candidates?
 | |
| 	int i = c->*pmf; 	// expected-error {{use of overloaded operator '->*' is ambiguous}} \
 | |
| 				// expected-note {{built-in candidate operator->*(const struct A *, const int struct A::*)}} \
 | |
| 				// expected-note {{built-in candidate operator->*(const struct A *, int struct A::*)}} \
 | |
| 				// expected-note {{built-in candidate operator->*(struct A *, const int struct A::*)}} \
 | |
| 				// expected-note {{built-in candidate operator->*(struct A *, int struct A::*)}}
 | |
| }
 | |
| 
 |