summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/MicrosoftCXXABI.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-06-11 00:20:57 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-06-11 00:20:57 +0000
commit01b9bb42d43a041bbe75c56d3dd70c15e3cdc3a6 (patch)
tree2ec522d2663bec308c7ff82d546fddb5762de707 /clang/lib/CodeGen/MicrosoftCXXABI.cpp
parent6bd006f31a7f18a32e45ea436fb08f64bdf669b1 (diff)
downloadbcm5719-llvm-01b9bb42d43a041bbe75c56d3dd70c15e3cdc3a6.tar.gz
bcm5719-llvm-01b9bb42d43a041bbe75c56d3dd70c15e3cdc3a6.zip
[MS ABI] Allow memfn pointers with unconvertible types to be formed
Remove the restriction which forbade forming pointers to member functions which had parameter types or return types which were not convertible. llvm-svn: 239499
Diffstat (limited to 'clang/lib/CodeGen/MicrosoftCXXABI.cpp')
-rw-r--r--clang/lib/CodeGen/MicrosoftCXXABI.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index de30883c545..bb95a123c55 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -2423,12 +2423,7 @@ MicrosoftCXXABI::BuildMemberPointer(const CXXRecordDecl *RD,
FirstField = CGM.GetAddrOfFunction(MD, Ty);
FirstField = llvm::ConstantExpr::getBitCast(FirstField, CGM.VoidPtrTy);
} else {
- if (!CGM.getTypes().isFuncTypeConvertible(
- MD->getType()->castAs<FunctionType>())) {
- CGM.ErrorUnsupported(MD, "pointer to virtual member function with "
- "incomplete return or parameter type");
- FirstField = llvm::Constant::getNullValue(CGM.VoidPtrTy);
- } else if (FPT->getCallConv() == CC_X86FastCall) {
+ if (FPT->getCallConv() == CC_X86FastCall) {
CGM.ErrorUnsupported(MD, "pointer to fastcall virtual member function");
FirstField = llvm::Constant::getNullValue(CGM.VoidPtrTy);
} else {
OpenPOWER on IntegriCloud