summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprCXX.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2017-02-17 20:59:40 +0000
committerVedant Kumar <vsk@apple.com>2017-02-17 20:59:40 +0000
commit29ba8d9bfe6d6343a7340bfe0d09aefab3fc0d44 (patch)
tree550ee376bbad131a3c24f82f739ccba0b3a950bc /clang/lib/CodeGen/CGExprCXX.cpp
parenta899f8605418df16c2d43e048dd3d8158906cfe6 (diff)
downloadbcm5719-llvm-29ba8d9bfe6d6343a7340bfe0d09aefab3fc0d44.tar.gz
bcm5719-llvm-29ba8d9bfe6d6343a7340bfe0d09aefab3fc0d44.zip
Revert "Retry: [ubsan] Reduce null checking of C++ object pointers (PR27581)"
This reverts commit r295401. It breaks the ubsan self-host. It inserts object size checks once per C++ method which fire when the structure is empty. llvm-svn: 295494
Diffstat (limited to 'clang/lib/CodeGen/CGExprCXX.cpp')
-rw-r--r--clang/lib/CodeGen/CGExprCXX.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp
index 1c6a577a95a..ebe0841b3c2 100644
--- a/clang/lib/CodeGen/CGExprCXX.cpp
+++ b/clang/lib/CodeGen/CGExprCXX.cpp
@@ -290,15 +290,10 @@ RValue CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(
if (CE)
CallLoc = CE->getExprLoc();
- bool SkipNullCheck = false;
- if (const auto *CMCE = dyn_cast<CXXMemberCallExpr>(CE))
- SkipNullCheck =
- CanElideObjectPointerNullCheck(CMCE->getImplicitObjectArgument());
- EmitTypeCheck(
- isa<CXXConstructorDecl>(CalleeDecl) ? CodeGenFunction::TCK_ConstructorCall
- : CodeGenFunction::TCK_MemberCall,
- CallLoc, This.getPointer(), C.getRecordType(CalleeDecl->getParent()),
- /*Alignment=*/CharUnits::Zero(), SkipNullCheck);
+ EmitTypeCheck(isa<CXXConstructorDecl>(CalleeDecl)
+ ? CodeGenFunction::TCK_ConstructorCall
+ : CodeGenFunction::TCK_MemberCall,
+ CallLoc, This.getPointer(), C.getRecordType(CalleeDecl->getParent()));
// FIXME: Uses of 'MD' past this point need to be audited. We may need to use
// 'CalleeDecl' instead.
OpenPOWER on IntegriCloud