21 lines
		
	
	
		
			316 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			316 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 %s -emit-llvm -o %t
 | 
						|
 | 
						|
// PR5248
 | 
						|
namespace PR5248 {
 | 
						|
struct A {
 | 
						|
  void copyFrom(const A &src);
 | 
						|
  void addRef(void);
 | 
						|
 | 
						|
  A& operator=(int);
 | 
						|
};
 | 
						|
 | 
						|
void A::copyFrom(const A &src) {
 | 
						|
  ((A &)src).addRef();
 | 
						|
}
 | 
						|
}
 | 
						|
 | 
						|
// reinterpret_cast to self
 | 
						|
void test(PR5248::A* a) {
 | 
						|
  reinterpret_cast<PR5248::A&>(*a) = 17;
 | 
						|
}
 |