Author: Benjamin Kramer Date: 2022-01-21T15:55:17+01:00 New Revision: b8102449a72c5144cb75cfca46e78b517d7f6606
URL: https://github.com/llvm/llvm-project/commit/b8102449a72c5144cb75cfca46e78b517d7f6606 DIFF: https://github.com/llvm/llvm-project/commit/b8102449a72c5144cb75cfca46e78b517d7f6606.diff LOG: [clang-tidy] Avoid binding nullptr to a reference That's undefined behavior. Found by -fsanitize=null. Added: Modified: clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp index 0e91451211aed..6e7d28b2974f7 100644 --- a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp @@ -68,9 +68,9 @@ void MoveConstArgCheck::registerMatchers(MatchFinder *Finder) { } bool IsRValueReferenceParam(const Expr *Invocation, - const QualType &InvocationParmType, + const QualType *InvocationParmType, const Expr *Arg) { - if (Invocation && InvocationParmType->isRValueReferenceType() && + if (Invocation && (*InvocationParmType)->isRValueReferenceType() && Arg->isLValue()) { if (!Invocation->getType()->isRecordType()) return true; @@ -138,7 +138,7 @@ void MoveConstArgCheck::check(const MatchFinder::MatchResult &Result) { // std::move shouldn't be removed when an lvalue wrapped by std::move is // passed to the function with an rvalue reference parameter. bool IsRVRefParam = - IsRValueReferenceParam(ReceivingExpr, *InvocationParmType, Arg); + IsRValueReferenceParam(ReceivingExpr, InvocationParmType, Arg); const auto *Var = IsVariable ? dyn_cast<DeclRefExpr>(Arg)->getDecl() : nullptr; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits