summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/member-pointer-ms.cpp
diff options
context:
space:
mode:
authorCharles Davis <cdavis@mines.edu>2010-08-16 05:30:44 +0000
committerCharles Davis <cdavis@mines.edu>2010-08-16 05:30:44 +0000
commitebab1ed5d30c96e1dc22c2521befd33aab743867 (patch)
tree123bf4d428e4949c675269bbacb1fefea7b41859 /clang/test/SemaCXX/member-pointer-ms.cpp
parent2d3694297d943d9b92963e5a7a4274829c7254eb (diff)
downloadbcm5719-llvm-ebab1ed5d30c96e1dc22c2521befd33aab743867.tar.gz
bcm5719-llvm-ebab1ed5d30c96e1dc22c2521befd33aab743867.zip
Error out if reinterpret_casting between member pointers of two different
sizes. llvm-svn: 111119
Diffstat (limited to 'clang/test/SemaCXX/member-pointer-ms.cpp')
-rw-r--r--clang/test/SemaCXX/member-pointer-ms.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/member-pointer-ms.cpp b/clang/test/SemaCXX/member-pointer-ms.cpp
index 8987f6d66fd..3b2d0fceb97 100644
--- a/clang/test/SemaCXX/member-pointer-ms.cpp
+++ b/clang/test/SemaCXX/member-pointer-ms.cpp
@@ -4,3 +4,11 @@
struct A; //expected-note{{forward declaration of 'A'}}
int A::*pai1; //expected-error{{incomplete type 'A'}}
+// Test that we don't allow reinterpret_casts from pointers of one size to
+// pointers of a different size.
+struct A {};
+struct B {};
+struct C: A, B {};
+
+void (A::*paf)();
+void (C::*pcf)() = reinterpret_cast<void (C::*)()>(paf); //expected-error{{cannot reinterpret_cast from member pointer type}}
OpenPOWER on IntegriCloud