32 lines
		
	
	
		
			359 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			359 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11
 | 
						|
// expected-no-diagnostics
 | 
						|
 | 
						|
struct A {};
 | 
						|
 | 
						|
struct B {
 | 
						|
	operator A*();
 | 
						|
};
 | 
						|
 | 
						|
struct C : B {
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
void foo(C c, B b, int A::* pmf) {
 | 
						|
	int j = c->*pmf; 
 | 
						|
	int i = b->*pmf;
 | 
						|
}
 | 
						|
 | 
						|
struct D {
 | 
						|
 operator const D *();
 | 
						|
};
 | 
						|
 | 
						|
struct DPtr {
 | 
						|
 operator volatile int D::*();
 | 
						|
};
 | 
						|
 | 
						|
int test(D d, DPtr dptr) {
 | 
						|
 return d->*dptr;
 | 
						|
}
 | 
						|
 |