================ @@ -183,38 +210,43 @@ void UseStartsEndsWithCheck::check(const MatchFinder::MatchResult &Result) { const auto *EndsWithFunction = Result.Nodes.getNodeAs<CXXMethodDecl>("ends_with_fun"); assert(bool(StartsWithFunction) != bool(EndsWithFunction)); + const CXXMethodDecl *ReplacementFunction = StartsWithFunction ? StartsWithFunction : EndsWithFunction; - if (ComparisonExpr->getBeginLoc().isMacroID()) + if (ComparisonExpr->getBeginLoc().isMacroID() || + FindExpr->getBeginLoc().isMacroID()) return; - const bool Neg = ComparisonExpr->getOpcode() == BO_NE; + // Make sure FindExpr->getArg(0) can be used to make a range in the FitItHint. + if (FindExpr->getNumArgs() == 0) + return; - auto Diagnostic = - diag(FindExpr->getExprLoc(), "use %0 instead of %1() %select{==|!=}2 0") - << ReplacementFunction->getName() << FindFun->getName() << Neg; + const bool Neg = isNegativeComparison(ComparisonExpr); ---------------- nicovank wrote:
Nit: `Neg` is not used here anymore, move it into the if statement: ```cpp if (isNegativeComparison(ComparisonExpr)) Diagnostic << FixItHint::CreateInsertion(FindExpr->getBeginLoc(), "!"); ``` https://github.com/llvm/llvm-project/pull/116033 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits