diff options
Diffstat (limited to 'clang/test/CodeGenCXX/casts.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/casts.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/casts.cpp b/clang/test/CodeGenCXX/casts.cpp new file mode 100644 index 0000000..436b722 --- /dev/null +++ b/clang/test/CodeGenCXX/casts.cpp @@ -0,0 +1,20 @@ +// 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; +} |