aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CGCall.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2020-09-25 13:09:47 -0700
committerVedant Kumar <vsk@apple.com>2020-09-28 09:41:18 -0700
commit06bc685fa2400cc28282ab6dd3c917d45bfa662f (patch)
tree3d812a33a02b29ca3f5d6245eb262895c283ec9d /clang/lib/CodeGen/CGCall.cpp
parentb5f7e9e26cd06d034bf68f63de6ae6d37b032b5e (diff)
downloadllvm-06bc685fa2400cc28282ab6dd3c917d45bfa662f.zip
llvm-06bc685fa2400cc28282ab6dd3c917d45bfa662f.tar.gz
llvm-06bc685fa2400cc28282ab6dd3c917d45bfa662f.tar.bz2
[ubsan] nullability-arg: Fix crash on C++ member pointers
Extend -fsanitize=nullability-arg to handle call sites which accept C++ member pointers. rdar://62476022 Differential Revision: https://reviews.llvm.org/D88336
Diffstat (limited to 'clang/lib/CodeGen/CGCall.cpp')
-rw-r--r--clang/lib/CodeGen/CGCall.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index 9ccbe87..dd3f856 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -3785,10 +3785,7 @@ void CodeGenFunction::EmitNonNullArgCheck(RValue RV, QualType ArgType,
}
SanitizerScope SanScope(this);
- assert(RV.isScalar());
- llvm::Value *V = RV.getScalarVal();
- llvm::Value *Cond =
- Builder.CreateICmpNE(V, llvm::Constant::getNullValue(V->getType()));
+ llvm::Value *Cond = EmitNonNullRValueCheck(RV, ArgType);
llvm::Constant *StaticData[] = {
EmitCheckSourceLocation(ArgLoc), EmitCheckSourceLocation(AttrLoc),
llvm::ConstantInt::get(Int32Ty, ArgNo + 1),