summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-10-17 21:30:27 +0000
committerReid Kleckner <reid@kleckner.net>2013-10-17 21:30:27 +0000
commit5a823d5f05c2fec385ab810007db926721fbba0d (patch)
treee8c39e446e63a0086aae9b0af552697c2b7661c5
parent0a558357553641dd8b336bdb4bf5d128f90811cf (diff)
downloadbcm5719-llvm-5a823d5f05c2fec385ab810007db926721fbba0d.tar.gz
bcm5719-llvm-5a823d5f05c2fec385ab810007db926721fbba0d.zip
[ms-cxxabi] Error out on virtual function memptrs
These are uncommon and this is better than miscompiling. llvm-svn: 192923
-rw-r--r--clang/lib/CodeGen/MicrosoftCXXABI.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index a8e074c7b37..ba7de89b2fc 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -1277,6 +1277,7 @@ MicrosoftCXXABI::BuildMemberPointer(const CXXRecordDecl *RD,
if (MD->isVirtual()) {
// FIXME: We have to instantiate a thunk that loads the vftable and jumps to
// the right offset.
+ CGM.ErrorUnsupported(MD, "pointer to virtual member function");
FirstField = llvm::Constant::getNullValue(CGM.VoidPtrTy);
} else {
const FunctionProtoType *FPT = MD->getType()->castAs<FunctionProtoType>();
OpenPOWER on IntegriCloud