diff options
author | Charles Davis <cdavis@mines.edu> | 2010-08-16 05:30:44 +0000 |
---|---|---|
committer | Charles Davis <cdavis@mines.edu> | 2010-08-16 05:30:44 +0000 |
commit | ebab1ed5d30c96e1dc22c2521befd33aab743867 (patch) | |
tree | 123bf4d428e4949c675269bbacb1fefea7b41859 /clang/test/SemaCXX/member-pointer-ms.cpp | |
parent | 2d3694297d943d9b92963e5a7a4274829c7254eb (diff) | |
download | bcm5719-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.cpp | 8 |
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}} |