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