// 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; | |
} |