summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2015-08-10 04:07:49 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2015-08-10 04:07:49 +0000
commita93fb5b048aec4ed8377042d67f77bd44f52fd3c (patch)
tree970ff6a511a0559c064920247f1649abd4fbd715 /clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
parent4b81164810803f553c8665eeff035b94eb7ba140 (diff)
downloadbcm5719-llvm-a93fb5b048aec4ed8377042d67f77bd44f52fd3c.tar.gz
bcm5719-llvm-a93fb5b048aec4ed8377042d67f77bd44f52fd3c.zip
[MSVC] Crash fix: assigning of overloaded member function pointer caused assertion
Original class was not marked with inheritance attribute and it causes a crash on codegen. Differential Revision: http://reviews.llvm.org/D11828 llvm-svn: 244428
Diffstat (limited to 'clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp')
-rw-r--r--clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp b/clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
index a509d57194f..27a2a5fc9c1 100644
--- a/clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
+++ b/clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
@@ -729,3 +729,20 @@ typedef void (D::*DMemPtrTy)();
// CHECK: @"\01??_9C@pr23878@@$BA@AE" to i8*), i32 0, i32 4
DMemPtrTy get_memptr() { return &D::f; }
}
+
+class C {};
+
+typedef void (C::*f)();
+
+class CA : public C {
+public:
+ void OnHelp(void);
+ int OnHelp(int);
+};
+
+// CHECK-LABEL: foo_fun
+void foo_fun() {
+ // CHECK: store i8* bitcast (void (%class.CA*)* @"\01?OnHelp@CA@@QAEXXZ" to i8*), i8**
+ f func = (f)&CA::OnHelp;
+}
+
OpenPOWER on IntegriCloud