aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-06-28 15:11:39 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-06-28 15:11:39 +0000
commit4a889e47bd5a8d08a705a87962a35a504728d7f6 (patch)
tree992693a169c85aff5b704e5a9e2355f9bb52baba /lib/CodeGen
parentea01d7661751e062bb670cc1a0bdfee5789cb96f (diff)
Disable devirtualization when we have covariant returns. I will open a bug
for tracking this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159351 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/CGExprCXX.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/CodeGen/CGExprCXX.cpp b/lib/CodeGen/CGExprCXX.cpp
index 100ef02af1..4b0bff0ad0 100644
--- a/lib/CodeGen/CGExprCXX.cpp
+++ b/lib/CodeGen/CGExprCXX.cpp
@@ -202,6 +202,9 @@ RValue CodeGenFunction::EmitCXXMemberCallExpr(const CXXMemberCallExpr *CE,
// we don't have support for that yet, so do a virtual call.
DevirtualizedMethod = NULL;
}
+ if (DevirtualizedMethod && DevirtualizedMethod->getResultType() !=
+ MD->getResultType())
+ DevirtualizedMethod = NULL;
}
llvm::Value *This;