diff options
author | Vedant Kumar <vsk@apple.com> | 2017-02-17 20:59:40 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2017-02-17 20:59:40 +0000 |
commit | 29ba8d9bfe6d6343a7340bfe0d09aefab3fc0d44 (patch) | |
tree | 550ee376bbad131a3c24f82f739ccba0b3a950bc /clang/lib/CodeGen/CGExprCXX.cpp | |
parent | a899f8605418df16c2d43e048dd3d8158906cfe6 (diff) | |
download | bcm5719-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.cpp | 13 |
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. |