================ @@ -0,0 +1,208 @@ +//===--- BoolBitwiseOperationCheck.cpp - clang-tidy -----------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "BoolBitwiseOperationCheck.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/Lex/Lexer.h" +#include <array> +#include <optional> +#include <utility> + +using namespace clang::ast_matchers; + +namespace clang::tidy::performance { + +static std::string tryPrintVariable(const BinaryOperator *E) { + if (E->isCompoundAssignmentOp()) { + const auto *DelcRefLHS = + dyn_cast<DeclRefExpr>(E->getLHS()->IgnoreImpCasts()); + if (DelcRefLHS) + return "variable '" + DelcRefLHS->getDecl()->getNameAsString() + "'"; + } + return "values"; +} + +static bool hasExplicitParentheses(const Expr *E, const SourceManager &SM, + const LangOptions &LangOpts) { + if (!E) + return false; + + const SourceLocation Start = E->getBeginLoc(); + const SourceLocation End = E->getEndLoc(); + + if (Start.isMacroID() || End.isMacroID() || !Start.isValid() || ---------------- vbvictor wrote:
nit: You could use `isInvalid()` instead of `!isValid()` https://github.com/llvm/llvm-project/pull/142324 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits