commit | 4b1ac72cd47f11ec55239dfd2978d85fd8dfbaef | [log] [tgz] |
---|---|---|
author | Piotr Padlewski <prazek@google.com> | Tue Sep 15 21:46:55 2015 +0000 |
committer | Piotr Padlewski <prazek@google.com> | Tue Sep 15 21:46:55 2015 +0000 |
tree | adf2d1e5f704b886d2fe7a3f269c6cf509dc02d1 | |
parent | 9d0ecf27a70106392780bc5daaa048d0532579fc [diff] [blame] |
Decorating vptr load & stores with !invariant.group Adding !invariant.group to vptr load/stores for devirtualization purposes. For more goto: http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html http://reviews.llvm.org/D12026 llvm-svn: 247725
diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp index 1952282..7e0a6ab 100644 --- a/clang/lib/CodeGen/CGExprCXX.cpp +++ b/clang/lib/CodeGen/CGExprCXX.cpp
@@ -258,7 +258,7 @@ } else { if (SanOpts.has(SanitizerKind::CFINVCall) && MD->getParent()->isDynamicClass()) { - llvm::Value *VTable = GetVTablePtr(This, Int8PtrTy); + llvm::Value *VTable = GetVTablePtr(This, Int8PtrTy, MD->getParent()); EmitVTablePtrCheckForCall(MD, VTable, CFITCK_NVCall, CE->getLocStart()); }