summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprCXX.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-05-03 18:44:29 +0000
committerReid Kleckner <rnk@google.com>2016-05-03 18:44:29 +0000
commit4b60f30a126afaf92bd9ed34336c9b9547408c99 (patch)
tree609eb8441d349e598d1e677850a214a0a6e2c667 /clang/lib/CodeGen/CGExprCXX.cpp
parent596b0c0f24ba8c8e3c255d7bd2616f353f8b1406 (diff)
downloadbcm5719-llvm-4b60f30a126afaf92bd9ed34336c9b9547408c99.tar.gz
bcm5719-llvm-4b60f30a126afaf92bd9ed34336c9b9547408c99.zip
[MS] Pass CalleeDecl to adjustThisArgumentForVirtualFunctionCall
If we are devirtualizing, then we want to compute the 'this' adjustment of the devirtualized target, not the adjustment of the base's method definition, which is usually zero. Fixes PR27621 llvm-svn: 268418
Diffstat (limited to 'clang/lib/CodeGen/CGExprCXX.cpp')
-rw-r--r--clang/lib/CodeGen/CGExprCXX.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp
index a90610f5927..c6f46c3969b 100644
--- a/clang/lib/CodeGen/CGExprCXX.cpp
+++ b/clang/lib/CodeGen/CGExprCXX.cpp
@@ -274,7 +274,7 @@ RValue CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(
if (MD->isVirtual()) {
This = CGM.getCXXABI().adjustThisArgumentForVirtualFunctionCall(
- *this, MD, This, UseVirtualCall);
+ *this, CalleeDecl, This, UseVirtualCall);
}
return EmitCXXMemberOrOperatorCall(MD, Callee, ReturnValue, This.getPointer(),
OpenPOWER on IntegriCloud