reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/clang/include/clang/AST/Expr.h
 3629 class CompoundAssignOperator : public BinaryOperator {

Declarations

gen/tools/clang/include/clang/AST/StmtNodes.inc
  635 BINARYOPERATOR(BinaryOperator, Expr)
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
   44 class BinaryOperator;
tools/clang/include/clang/Analysis/CFG.h
   40 class BinaryOperator;
tools/clang/include/clang/Analysis/PathDiagnostic.h
   41 class BinaryOperator;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
   28 class BinaryOperator;
tools/lldb/include/lldb/Core/ClangForward.h
   26 class BinaryOperator;

References

include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  474     : public DynCastPtrConverter<T, Stmt> {};
tools/clang/include/clang/AST/Expr.h
 3629 class CompoundAssignOperator : public BinaryOperator {
tools/clang/include/clang/AST/JSONNodeDumper.h
  261   void VisitBinaryOperator(const BinaryOperator *BO);
tools/clang/include/clang/AST/RecursiveASTVisitor.h
  552   if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(S)) {
  552   if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(S)) {
tools/clang/include/clang/AST/StmtVisitor.h
   46     if (PTR(BinaryOperator) BinOp = dyn_cast<BinaryOperator>(S)) {
tools/clang/include/clang/AST/TextNodeDumper.h
  248   void VisitBinaryOperator(const BinaryOperator *Node);
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
 2194 extern const internal::VariadicDynCastAllOfMatcher<Stmt, BinaryOperator>
 4585 inline internal::Matcher<BinaryOperator> hasEitherOperand(
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  479 class WrapperMatcherInterface : public MatcherInterface<T> {
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  994   bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
  997     static_assert(std::is_base_of<Decl, T>::value ||
  998                   std::is_base_of<Stmt, T>::value ||
  999                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1000                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1002                   std::is_base_of<QualType, T>::value,
 1009   bool matchesDescendantOf(const T &Node,
 1013     static_assert(std::is_base_of<Decl, T>::value ||
 1014                   std::is_base_of<Stmt, T>::value ||
 1015                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1016                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1017                   std::is_base_of<TypeLoc, T>::value ||
 1018                   std::is_base_of<QualType, T>::value,
 1026   bool matchesAncestorOf(const T &Node,
 1030     static_assert(std::is_base_of<Decl, T>::value ||
 1031                       std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1032                       std::is_base_of<Stmt, T>::value ||
 1033                       std::is_base_of<TypeLoc, T>::value,
 1067   using head = T1;
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1146     template <typename To> operator Matcher<To>() const {
 1184   operator Matcher<T>() const {
 1185     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1285 class HasMatcher : public WrapperMatcherInterface<T> {
 1290   bool matches(const T &Node, ASTMatchFinder *Finder,
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1418 class HasDescendantMatcher : public WrapperMatcherInterface<T> {
 1426   bool matches(const T &Node, ASTMatchFinder *Finder,
 1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
 1466   bool matches(const T &Node, ASTMatchFinder *Finder,
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
  410                              const BinaryOperator *BO,
  413                                  const BinaryOperator *BO,
  415   til::SExpr *translateBinaryOperator(const BinaryOperator *BO,
tools/clang/include/clang/Analysis/CFG.h
 1213   virtual void compareAlwaysTrue(const BinaryOperator *B, bool isAlwaysTrue) {}
 1214   virtual void compareBitwiseEquality(const BinaryOperator *B,
 1216   virtual void compareBitwiseOr(const BinaryOperator *B) {}
tools/clang/include/clang/Analysis/PathDiagnostic.h
  243   static PathDiagnosticLocation createOperatorLoc(const BinaryOperator *BO,
tools/clang/include/clang/Analysis/ProgramPoint.h
  282   const T* getStmtAs() const { return dyn_cast<T>(getStmt()); }
  282   const T* getStmtAs() const { return dyn_cast<T>(getStmt()); }
tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h
  122        << std::string(BinaryOperator::getOpcodeStr(S->getOpcode())) << " "
  132            std::string(BinaryOperator::getOpcodeStr(S->getOpcode())) +
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
  255   VisitTrueTest(const Expr *Cond, const BinaryOperator *BExpr,
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
   85     ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C);
   89     return isa<STMT>(S);
  104     ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C);
  108     return isa<STMT>(S);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
  253   const llvm::APSInt* evalAPSInt(BinaryOperator::Opcode Op,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
  437   void VisitBinaryOperator(const BinaryOperator* B, ExplodedNode *Pred,
  469   void VisitLogicalExpr(const BinaryOperator* B, ExplodedNode *Pred,
  584   SVal evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
  589   SVal evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
  595   SVal evalBinOp(ProgramStateRef ST, BinaryOperator::Opcode Op,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
  163                                BinaryOperator::Opcode op,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h
   75   fromNBinOp(llvm::SMTSolverRef &Solver, const BinaryOperator::Opcode Op,
   92                                            const BinaryOperator::Opcode Op,
  170                         const BinaryOperator::Opcode Op,
  203                                                 const BinaryOperator::Opcode Op,
  343              BinaryOperator::Opcode Op, const llvm::SMTExprRef &RHS,
  354       if (BinaryOperator::isComparisonOp(Op) ||
  355           BinaryOperator::isLogicalOp(Op)) {
  382     BinaryOperator::Opcode Op = BSE->getOpcode();
  450         *hasComparison = BinaryOperator::isComparisonOp(BSE->getOpcode());
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
  117   virtual SVal evalBinOpNN(ProgramStateRef state, BinaryOperator::Opcode op,
  122   virtual SVal evalBinOpLL(ProgramStateRef state, BinaryOperator::Opcode op,
  128   virtual SVal evalBinOpLN(ProgramStateRef state, BinaryOperator::Opcode op,
  141   SVal makeSymExprValNN(BinaryOperator::Opcode op,
  144   SVal evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
  322   NonLoc makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
  325   NonLoc makeNonLoc(const llvm::APSInt& rhs, BinaryOperator::Opcode op,
  328   NonLoc makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  388   SVal evalBinOp(SValBuilder &svalBuilder, BinaryOperator::Opcode Op,
  649   SVal evalBinOp(BasicValueFactory& BasicVals, BinaryOperator::Opcode Op,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
  304   BinaryOperator::Opcode Op;
  308   BinarySymExpr(Kind k, BinaryOperator::Opcode op, QualType t)
  322   BinaryOperator::Opcode getOpcode() const { return Op; }
  337   SymIntExpr(const SymExpr *lhs, BinaryOperator::Opcode op,
  355                       BinaryOperator::Opcode op, const llvm::APSInt& rhs,
  380   IntSymExpr(const llvm::APSInt &lhs, BinaryOperator::Opcode op,
  398                       BinaryOperator::Opcode op, const SymExpr *rhs,
  423   SymSymExpr(const SymExpr *lhs, BinaryOperator::Opcode op, const SymExpr *rhs,
  442                     BinaryOperator::Opcode op, const SymExpr *rhs, QualType t) {
  517   const SymIntExpr *getSymIntExpr(const SymExpr *lhs, BinaryOperator::Opcode op,
  520   const SymIntExpr *getSymIntExpr(const SymExpr &lhs, BinaryOperator::Opcode op,
  526                                   BinaryOperator::Opcode op,
  529   const SymSymExpr *getSymSymExpr(const SymExpr *lhs, BinaryOperator::Opcode op,
tools/clang/lib/ARCMigrate/ObjCMT.cpp
  814     if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(InitExpr))
  814     if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(InitExpr))
tools/clang/lib/ARCMigrate/TransARCAssign.cpp
   41   bool VisitBinaryOperator(BinaryOperator *Exp) {
tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp
  187       } else if (BinaryOperator *bop = dyn_cast<BinaryOperator>(child)) {
  187       } else if (BinaryOperator *bop = dyn_cast<BinaryOperator>(child)) {
tools/clang/lib/ARCMigrate/TransProperties.cpp
  290     bool VisitBinAssign(BinaryOperator *E) {
tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
  225     if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(S)) {
  225     if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(S)) {
  440     if (BinaryOperator *
  441           bopE = dyn_cast_or_null<BinaryOperator>(parent)) {
tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp
   90   bool VisitBinaryOperator(BinaryOperator *BOE) {
  153     if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E))
  153     if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E))
  160   bool isZeroingPropIvar(BinaryOperator *BOE) {
  193     BinaryOperator *BO = dyn_cast<BinaryOperator>(PO->getSyntacticForm());
  193     BinaryOperator *BO = dyn_cast<BinaryOperator>(PO->getSyntacticForm());
tools/clang/lib/ARCMigrate/Transforms.cpp
   66 bool trans::isPlusOneAssign(const BinaryOperator *E) {
tools/clang/lib/ARCMigrate/Transforms.h
  162 bool isPlusOneAssign(const BinaryOperator *E);
tools/clang/lib/AST/ASTImporter.cpp
  567     ExpectedStmt VisitBinaryOperator(BinaryOperator *E);
 6570 ExpectedStmt ASTNodeImporter::VisitBinaryOperator(BinaryOperator *E) {
 6581   return new (Importer.getToContext()) BinaryOperator(
tools/clang/lib/AST/DeclCXX.cpp
 2129   if (auto *BO = dyn_cast<BinaryOperator>(Base)) {
tools/clang/lib/AST/Expr.cpp
   43     if (auto *BO = dyn_cast<BinaryOperator>(E)) {
  109     } else if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
  109     } else if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
  158   if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
  158   if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 1449   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(CEE)) {
 1449   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(CEE)) {
 2447     const BinaryOperator *BO = cast<BinaryOperator>(this);
 2447     const BinaryOperator *BO = cast<BinaryOperator>(this);
 2633         isa<BinaryOperator>(PO->getSyntacticForm()))
 2795   if (const BinaryOperator *op = dyn_cast<BinaryOperator>(expr)) {
 2795   if (const BinaryOperator *op = dyn_cast<BinaryOperator>(expr)) {
 3069   if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E))
 3069   if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E))
 3492     if (cast<BinaryOperator>(this)->isAssignmentOp())
 3810     if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 3810     if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 3873   if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(E)) {
 3873   if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(E)) {
tools/clang/lib/AST/ExprCXX.cpp
   75   if (auto *BO = dyn_cast<BinaryOperator>(E)) {
  111   if (auto *BO = dyn_cast<BinaryOperator>(E)) {
  722   if (const auto *BO = dyn_cast<BinaryOperator>(Callee))
  722   if (const auto *BO = dyn_cast<BinaryOperator>(Callee))
tools/clang/lib/AST/ExprClassification.cpp
   30 static Cl::Kinds ClassifyBinaryOp(ASTContext &Ctx, const BinaryOperator *E);
  300       return ClassifyBinaryOp(Ctx, cast<BinaryOperator>(E));
  538 static Cl::Kinds ClassifyBinaryOp(ASTContext &Ctx, const BinaryOperator *E) {
tools/clang/lib/AST/ExprConstant.cpp
 4178                                                   const BinaryOperator *BO,
 6753   bool VisitBinaryOperator(const BinaryOperator *E) {
 6863       } else if (const BinaryOperator *BE = dyn_cast<BinaryOperator>(Callee)) {
 6863       } else if (const BinaryOperator *BE = dyn_cast<BinaryOperator>(Callee)) {
 7252   bool VisitBinaryOperator(const BinaryOperator *E) {
 7342   bool VisitBinAssign(const BinaryOperator *BO);
 7667 bool LValueExprEvaluator::VisitBinAssign(const BinaryOperator *E) {
 7828   bool VisitBinaryOperator(const BinaryOperator *E);
 7905 bool PointerExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) {
 8781     bool VisitBinCmp(const BinaryOperator *E);
 9734   bool VisitBinaryOperator(const BinaryOperator *E);
 9826   bool VisitBinaryOperator(const BinaryOperator *E);
11148   static bool shouldEnqueue(const BinaryOperator *E) {
11155   bool Traverse(const BinaryOperator *E) {
11186   bool VisitBinOpLHSOnly(EvalResult &LHSResult, const BinaryOperator *E,
11190                   const BinaryOperator *E, APValue &Result);
11211        VisitBinOpLHSOnly(EvalResult &LHSResult, const BinaryOperator *E,
11270                   const BinaryOperator *E, APValue &Result) {
11367       if (const BinaryOperator *Bop = dyn_cast<BinaryOperator>(job.E)) {
11367       if (const BinaryOperator *Bop = dyn_cast<BinaryOperator>(job.E)) {
11381       const BinaryOperator *Bop = cast<BinaryOperator>(job.E);
11381       const BinaryOperator *Bop = cast<BinaryOperator>(job.E);
11396       const BinaryOperator *Bop = cast<BinaryOperator>(job.E);
11396       const BinaryOperator *Bop = cast<BinaryOperator>(job.E);
11431 EvaluateComparisonBinaryOperator(EvalInfo &Info, const BinaryOperator *E,
11742 bool RecordExprEvaluator::VisitBinCmp(const BinaryOperator *E) {
11766 bool IntExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) {
12338 bool FixedPointExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) {
12392   bool VisitBinaryOperator(const BinaryOperator *E);
12554 bool FloatExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) {
12628   bool VisitBinaryOperator(const BinaryOperator *E);
12823 bool ComplexExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) {
14034     const BinaryOperator *Exp = cast<BinaryOperator>(E);
14034     const BinaryOperator *Exp = cast<BinaryOperator>(E);
tools/clang/lib/AST/Interp/ByteCodeExprGen.cpp
  146 bool ByteCodeExprGen<Emitter>::VisitBinaryOperator(const BinaryOperator *BO) {
tools/clang/lib/AST/Interp/ByteCodeExprGen.h
   72   bool VisitBinaryOperator(const BinaryOperator *E);
tools/clang/lib/AST/ItaniumMangle.cpp
 4082     const BinaryOperator *BO = cast<BinaryOperator>(E);
 4082     const BinaryOperator *BO = cast<BinaryOperator>(E);
 4086       mangleOperatorName(BinaryOperator::getOverloadedOperator(BO->getOpcode()),
 4097     mangleOperatorName(BinaryOperator::getOverloadedOperator(Decomposed.Opcode),
 4356           BinaryOperator::getOverloadedOperator(FE->getOperator()),
tools/clang/lib/AST/JSONNodeDumper.cpp
 1156 void JSONNodeDumper::VisitBinaryOperator(const BinaryOperator *BO) {
 1157   JOS.attribute("opcode", BinaryOperator::getOpcodeStr(BO->getOpcode()));
tools/clang/lib/AST/ParentMap.cpp
  191       BinaryOperator *BE = cast<BinaryOperator>(P);
  191       BinaryOperator *BE = cast<BinaryOperator>(P);
tools/clang/lib/AST/StmtPrinter.cpp
 1415 void StmtPrinter::VisitBinaryOperator(BinaryOperator *Node) {
 1417   OS << " " << BinaryOperator::getOpcodeStr(Node->getOpcode()) << " ";
 1423   OS << " " << BinaryOperator::getOpcodeStr(Node->getOpcode()) << " ";
 1705   OS << ' ' << BinaryOperator::getOpcodeStr(Decomposed.Opcode) << ' ';
 2239     OS << " " << BinaryOperator::getOpcodeStr(E->getOperator()) << " ";
 2243     OS << " " << BinaryOperator::getOpcodeStr(E->getOperator()) << " ";
tools/clang/lib/AST/StmtProfile.cpp
 1181 void StmtProfiler::VisitBinaryOperator(const BinaryOperator *S) {
tools/clang/lib/AST/TextNodeDumper.cpp
  846 void TextNodeDumper::VisitBinaryOperator(const BinaryOperator *Node) {
  847   OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode()) << "'";
  852   OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode())
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  734 const internal::VariadicDynCastAllOfMatcher<Stmt, BinaryOperator>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  361     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  469         DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/Analysis/BodyFarm.cpp
   54   BinaryOperator *makeAssignment(const Expr *LHS, const Expr *RHS, QualType Ty);
   57   BinaryOperator *makeComparison(const Expr *LHS, const Expr *RHS,
   58                                  BinaryOperator::Opcode Op);
  115 BinaryOperator *ASTMaker::makeAssignment(const Expr *LHS, const Expr *RHS,
  117  return new (C) BinaryOperator(const_cast<Expr*>(LHS), const_cast<Expr*>(RHS),
  122 BinaryOperator *ASTMaker::makeComparison(const Expr *LHS, const Expr *RHS,
  123                                          BinaryOperator::Opcode Op) {
  126   return new (C) BinaryOperator(const_cast<Expr*>(LHS),
  461   BinaryOperator *FlagAssignment = M.makeAssignment(
  525   BinaryOperator *B =
tools/clang/lib/Analysis/CFG.cpp
  114 tryNormalizeBinaryOperator(const BinaryOperator *B) {
  546   CFGBlock *VisitBinaryOperator(BinaryOperator *B, AddStmtChoice asc);
  584   CFGBlock *VisitLogicalOperator(BinaryOperator *B);
  585   std::pair<CFGBlock *, CFGBlock *> VisitLogicalOperator(BinaryOperator *B,
  688   CFGBlock *VisitBinaryOperatorForTemporaryDtors(BinaryOperator *E,
  921   TryResult checkIncorrectRelationalOperator(const BinaryOperator *B) {
  960   TryResult checkIncorrectEqualityOperator(const BinaryOperator *B) {
  975     const BinaryOperator *BitOp = dyn_cast<BinaryOperator>(BoolExpr);
  975     const BinaryOperator *BitOp = dyn_cast<BinaryOperator>(BoolExpr);
 1035   TryResult checkIncorrectLogicOperator(const BinaryOperator *B) {
 1037     const BinaryOperator *LHS =
 1038         dyn_cast<BinaryOperator>(B->getLHS()->IgnoreParens());
 1039     const BinaryOperator *RHS =
 1040         dyn_cast<BinaryOperator>(B->getRHS()->IgnoreParens());
 1143   TryResult checkIncorrectBitwiseOrOperator(const BinaryOperator *B) {
 1183     if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(S)) {
 1183     if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(S)) {
 1229     if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(E)) {
 1229     if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(E)) {
 2145       return VisitBinaryOperator(cast<BinaryOperator>(S), asc);
 2378 CFGBlock *CFGBuilder::VisitLogicalOperator(BinaryOperator *B) {
 2390 CFGBuilder::VisitLogicalOperator(BinaryOperator *B,
 2401     if (BinaryOperator *B_RHS = dyn_cast<BinaryOperator>(RHS))
 2401     if (BinaryOperator *B_RHS = dyn_cast<BinaryOperator>(RHS))
 2442   if (BinaryOperator *B_LHS = dyn_cast<BinaryOperator>(LHS))
 2442   if (BinaryOperator *B_LHS = dyn_cast<BinaryOperator>(LHS))
 2482 CFGBlock *CFGBuilder::VisitBinaryOperator(BinaryOperator *B,
 2747   if (BinaryOperator *Cond =
 2748         dyn_cast<BinaryOperator>(C->getCond()->IgnoreParens()))
 2992   BinaryOperator *Cond =
 2995           : dyn_cast<BinaryOperator>(I->getCond()->IgnoreParens());
 3385     if (BinaryOperator *Cond =
 3386             dyn_cast_or_null<BinaryOperator>(C ? C->IgnoreParens() : nullptr))
 3720     if (BinaryOperator *Cond = dyn_cast<BinaryOperator>(C->IgnoreParens()))
 3720     if (BinaryOperator *Cond = dyn_cast<BinaryOperator>(C->IgnoreParens()))
 4613       return VisitBinaryOperatorForTemporaryDtors(cast<BinaryOperator>(E),
 4719     BinaryOperator *E, bool ExternallyDestructed, TempDtorContext &Context) {
 5254   void VisitBinaryOperator(BinaryOperator* B) {
 5429     if (const BinaryOperator* B = dyn_cast<BinaryOperator>(S)) {
 5429     if (const BinaryOperator* B = dyn_cast<BinaryOperator>(S)) {
 5947       E = cast<BinaryOperator>(Terminator)->getLHS();
tools/clang/lib/Analysis/Consumed.cpp
  304     const BinaryOperator *Source;
  329   PropagationInfo(const BinaryOperator *Source, EffectiveOp EOp,
  338   PropagationInfo(const BinaryOperator *Source, EffectiveOp EOp,
  404   const BinaryOperator * testSourceNode() const {
  500   void VisitBinaryOperator(const BinaryOperator *BinOp);
  701 void ConsumedStmtVisitor::VisitBinaryOperator(const BinaryOperator *BinOp) {
 1239     if (!PInfo.isValid() && isa<BinaryOperator>(Cond))
 1240       PInfo = Visitor.getInfo(cast<BinaryOperator>(Cond)->getRHS());
 1254   } else if (const auto *BinOp =
 1255        dyn_cast_or_null<BinaryOperator>(CurrBlock->getTerminator().getStmt())) {
 1258       if ((BinOp = dyn_cast_or_null<BinaryOperator>(BinOp->getLHS()))) {
tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp
   30   while (const auto *BOComma =
   31                dyn_cast_or_null<BinaryOperator>(Result->IgnoreParens())) {
tools/clang/lib/Analysis/LiveVariables.cpp
  212   void VisitBinaryOperator(BinaryOperator *BO);
  372 void TransferFunctions::VisitBinaryOperator(BinaryOperator *B) {
  575           if (const auto *BO = dyn_cast<BinaryOperator>(stmt)) {
  575           if (const auto *BO = dyn_cast<BinaryOperator>(stmt)) {
tools/clang/lib/Analysis/PathDiagnostic.cpp
  588 PathDiagnosticLocation::createOperatorLoc(const BinaryOperator *BO,
tools/clang/lib/Analysis/ReachableCode.cpp
  238       const BinaryOperator *B = cast<BinaryOperator>(S);
  238       const BinaryOperator *B = cast<BinaryOperator>(S);
  299     if (isa<BinaryOperator>(Term)) {
  451   if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(S))
  451   if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(S))
  555       const BinaryOperator *BO = cast<BinaryOperator>(S);
  555       const BinaryOperator *BO = cast<BinaryOperator>(S);
tools/clang/lib/Analysis/ThreadSafety.cpp
  601   void VisitBinaryOperator(const BinaryOperator *BO);
  627 void VarMapBuilder::VisitBinaryOperator(const BinaryOperator *BO) {
 1452   else if (const auto *BOP = dyn_cast<BinaryOperator>(Cond)) {
 1452   else if (const auto *BOP = dyn_cast<BinaryOperator>(Cond)) {
 1602   void VisitBinaryOperator(const BinaryOperator *BO);
 1983 void BuildLockset::VisitBinaryOperator(const BinaryOperator *BO) {
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp
  226     return translateBinaryOperator(cast<BinaryOperator>(S), Ctx);
  480                                          const BinaryOperator *BO,
  491                                              const BinaryOperator *BO,
  516 til::SExpr *SExprBuilder::translateBinaryOperator(const BinaryOperator *BO,
tools/clang/lib/Analysis/UninitializedValues.cpp
  350   void VisitBinaryOperator(BinaryOperator *BO);
  412   if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
  412   if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
  440 void ClassifyRefs::VisitBinaryOperator(BinaryOperator *BO) {
  534   void VisitBinaryOperator(BinaryOperator *bo);
  780 void TransferFunctions::VisitBinaryOperator(BinaryOperator *BO) {
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGClass.cpp
 1142       if (BinaryOperator *BO = dyn_cast<BinaryOperator>(S)) {
 1142       if (BinaryOperator *BO = dyn_cast<BinaryOperator>(S)) {
tools/clang/lib/CodeGen/CGExpr.cpp
 1256     return EmitBinaryOperatorLValue(cast<BinaryOperator>(E));
 4607 LValue CodeGenFunction::EmitBinaryOperatorLValue(const BinaryOperator *E) {
 4958 EmitPointerToDataMemberBinaryExpr(const BinaryOperator *E) {
tools/clang/lib/CodeGen/CGExprAgg.cpp
  148   void VisitBinaryOperator(const BinaryOperator *BO);
  149   void VisitPointerToDataMemberBinaryOperator(const BinaryOperator *BO);
  150   void VisitBinAssign(const BinaryOperator *E);
  151   void VisitBinComma(const BinaryOperator *E);
  152   void VisitBinCmp(const BinaryOperator *E);
  905 void AggExprEmitter::VisitBinComma(const BinaryOperator *E) {
  922                                 const BinaryOperator *E, llvm::Value *LHS,
  971 void AggExprEmitter::VisitBinCmp(const BinaryOperator *E) {
 1059 void AggExprEmitter::VisitBinaryOperator(const BinaryOperator *E) {
 1067                                                     const BinaryOperator *E) {
 1087   if (const BinaryOperator *op = dyn_cast<BinaryOperator>(E)) {
 1087   if (const BinaryOperator *op = dyn_cast<BinaryOperator>(E)) {
 1138 void AggExprEmitter::VisitBinAssign(const BinaryOperator *E) {
tools/clang/lib/CodeGen/CGExprCXX.cpp
  183   if (isa<BinaryOperator>(callee))
  416   const BinaryOperator *BO =
  417       cast<BinaryOperator>(E->getCallee()->IgnoreParens());
 2083   if (const auto *BO = dyn_cast<BinaryOperator>(E))
 2083   if (const auto *BO = dyn_cast<BinaryOperator>(E))
tools/clang/lib/CodeGen/CGExprComplex.cpp
  252   BinOpInfo EmitBinOps(const BinaryOperator *E);
  269   ComplexPairTy VisitBinAdd(const BinaryOperator *E) {
  272   ComplexPairTy VisitBinSub(const BinaryOperator *E) {
  275   ComplexPairTy VisitBinMul(const BinaryOperator *E) {
  278   ComplexPairTy VisitBinDiv(const BinaryOperator *E) {
  305   LValue EmitBinAssignLValue(const BinaryOperator *E,
  307   ComplexPairTy VisitBinAssign     (const BinaryOperator *E);
  308   ComplexPairTy VisitBinComma      (const BinaryOperator *E);
  867 ComplexExprEmitter::EmitBinOps(const BinaryOperator *E) {
  972 LValue ComplexExprEmitter::EmitBinAssignLValue(const BinaryOperator *E,
  992 ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) {
 1007 ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) {
 1136 LValue CodeGenFunction::EmitComplexAssignmentLValue(const BinaryOperator *E) {
tools/clang/lib/CodeGen/CGExprScalar.cpp
   56                              BinaryOperator::Opcode Opcode, bool Signed,
   90   BinaryOperator::Opcode Opcode; // Opcode of BinOp to perform
  136     if (const auto *BinOp = dyn_cast<BinaryOperator>(E)) {
  136     if (const auto *BinOp = dyn_cast<BinaryOperator>(E)) {
  188   const auto *BO = cast<BinaryOperator>(Op.E);
  188   const auto *BO = cast<BinaryOperator>(Op.E);
  767   BinOpInfo EmitBinOps(const BinaryOperator *E);
  796   Value *EmitCompare(const BinaryOperator *E, llvm::CmpInst::Predicate UICmpOpc,
  811   Value *VisitBinAssign     (const BinaryOperator *E);
  813   Value *VisitBinLAnd       (const BinaryOperator *E);
  814   Value *VisitBinLOr        (const BinaryOperator *E);
  815   Value *VisitBinComma      (const BinaryOperator *E);
 1540   if (BinaryOperator::isCompoundAssignmentOp(Opcode))
 1541     Opcode = BinaryOperator::getOpForCompoundAssignment(Opcode);
 1550     if (BinaryOperator::isShiftOp(Opcode)) {
 1553       const BinaryOperator *BO = cast<BinaryOperator>(Info.E);
 1553       const BinaryOperator *BO = cast<BinaryOperator>(Info.E);
 2812 BinOpInfo ScalarExprEmitter::EmitBinOps(const BinaryOperator *E) {
 2971   const auto *BO = cast<BinaryOperator>(Ops.E);
 2971   const auto *BO = cast<BinaryOperator>(Ops.E);
 3162   const BinaryOperator *expr = cast<BinaryOperator>(op.E);
 3162   const BinaryOperator *expr = cast<BinaryOperator>(op.E);
 3198   if (BinaryOperator::isNullPointerArithmeticExtension(CGF.getContext(),
 3386   const auto *BinOp = cast<BinaryOperator>(op.E);
 3386   const auto *BinOp = cast<BinaryOperator>(op.E);
 3539   const BinaryOperator *expr = cast<BinaryOperator>(op.E);
 3539   const BinaryOperator *expr = cast<BinaryOperator>(op.E);
 3725 Value *ScalarExprEmitter::EmitCompare(const BinaryOperator *E,
 3903 Value *ScalarExprEmitter::VisitBinAssign(const BinaryOperator *E) {
 3962 Value *ScalarExprEmitter::VisitBinLAnd(const BinaryOperator *E) {
 4046 Value *ScalarExprEmitter::VisitBinLOr(const BinaryOperator *E) {
 4124 Value *ScalarExprEmitter::VisitBinComma(const BinaryOperator *E) {
tools/clang/lib/CodeGen/CGObjC.cpp
 1479   BinaryOperator assign(&ivarRef, finalArg, BO_Assign,
 2746       isa<BinaryOperator>(e) &&
 2747       cast<BinaryOperator>(e)->getOpcode() == BO_Assign)
 2899   Result visitBinaryOperator(const BinaryOperator *e);
 2900   Result visitBinAssign(const BinaryOperator *e);
 2901   Result visitBinAssignUnsafeUnretained(const BinaryOperator *e);
 2902   Result visitBinAssignAutoreleasing(const BinaryOperator *e);
 2903   Result visitBinAssignWeak(const BinaryOperator *e);
 2904   Result visitBinAssignStrong(const BinaryOperator *e);
 3017 ARCExprEmitter<Impl,Result>::visitBinaryOperator(const BinaryOperator *e) {
 3033 Result ARCExprEmitter<Impl,Result>::visitBinAssign(const BinaryOperator *e) {
 3057                     visitBinAssignUnsafeUnretained(const BinaryOperator *e) {
 3073 ARCExprEmitter<Impl,Result>::visitBinAssignAutoreleasing(const BinaryOperator *e) {
 3079 ARCExprEmitter<Impl,Result>::visitBinAssignWeak(const BinaryOperator *e) {
 3085 ARCExprEmitter<Impl,Result>::visitBinAssignStrong(const BinaryOperator *e) {
 3106   } else if (auto op = dyn_cast<BinaryOperator>(e)) {
 3379 CodeGenFunction::EmitARCStoreUnsafeUnretained(const BinaryOperator *e,
 3398 CodeGenFunction::EmitARCStoreStrong(const BinaryOperator *e,
 3429 CodeGenFunction::EmitARCStoreAutoreleasing(const BinaryOperator *e) {
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
 5865       if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
 5865       if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
 5881         if (const auto *BORHS =
 5882                 dyn_cast<BinaryOperator>(RHSExpr->IgnoreParenImpCasts())) {
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
  704     const auto *BO = dyn_cast<BinaryOperator>(Copy);
  704     const auto *BO = dyn_cast<BinaryOperator>(Copy);
 1469     if (const auto *CS = cast_or_null<BinaryOperator>(C->getCalcStep()))
 1469     if (const auto *CS = cast_or_null<BinaryOperator>(C->getCalcStep()))
 2635     BinaryOperator Cond(&IVRefExpr, &UBRefExpr, BO_LE, C.BoolTy, VK_RValue,
 3871   const auto *BOUE = cast<BinaryOperator>(UE->IgnoreImpCasts());
 3871   const auto *BOUE = cast<BinaryOperator>(UE->IgnoreImpCasts());
 3939     const auto *BOUE = cast<BinaryOperator>(UE->IgnoreImpCasts());
 3939     const auto *BOUE = cast<BinaryOperator>(UE->IgnoreImpCasts());
tools/clang/lib/CodeGen/CodeGenFunction.cpp
 1372   if (const BinaryOperator *CondBOp = dyn_cast<BinaryOperator>(Cond)) {
 1372   if (const BinaryOperator *CondBOp = dyn_cast<BinaryOperator>(Cond)) {
tools/clang/lib/CodeGen/CodeGenFunction.h
 3488   LValue EmitComplexAssignmentLValue(const BinaryOperator *E);
 3494   LValue EmitBinaryOperatorLValue(const BinaryOperator *E);
 3588   LValue EmitPointerToDataMemberBinaryExpr(const BinaryOperator *E);
 3839   EmitARCStoreAutoreleasing(const BinaryOperator *e);
 3841   EmitARCStoreStrong(const BinaryOperator *e, bool ignored);
 3843   EmitARCStoreUnsafeUnretained(const BinaryOperator *e, bool ignored);
tools/clang/lib/CodeGen/CodeGenPGO.cpp
  285       const BinaryOperator *BO = cast<BinaryOperator>(S);
  285       const BinaryOperator *BO = cast<BinaryOperator>(S);
  696   void VisitBinLAnd(const BinaryOperator *E) {
  708   void VisitBinLOr(const BinaryOperator *E) {
tools/clang/lib/CodeGen/CoverageMappingGen.cpp
 1251   void VisitBinLAnd(const BinaryOperator *E) {
 1260   void VisitBinLOr(const BinaryOperator *E) {
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
 5437     if (isa<BinaryOperator>(PseudoOp->getSyntacticForm())) {
 7483       BinaryOperator *addExpr =
 7484         new (Context) BinaryOperator(castExpr, DRE, BO_Add,
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
 1251     RHS = cast<BinaryOperator>(PseudoOp->getSyntacticForm())->getRHS();
 2992     BinaryOperator *lessThanExpr =
 2993       new (Context) BinaryOperator(sizeofExpr, limit, BO_LE, Context->IntTy,
 4561     if (isa<BinaryOperator>(PseudoOp->getSyntacticForm())) {
tools/clang/lib/Index/IndexBody.cpp
   75     if (auto BO = dyn_cast<BinaryOperator>(Parent)) {
  236         if (const auto *BinOp = dyn_cast<BinaryOperator>(E))
  236         if (const auto *BinOp = dyn_cast<BinaryOperator>(E))
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  144   void compareAlwaysTrue(const BinaryOperator *B, bool isAlwaysTrue) override {
  153   void compareBitwiseEquality(const BinaryOperator *B,
  163   void compareBitwiseOr(const BinaryOperator *B) override {
  889       const BinaryOperator *BO = cast<BinaryOperator>(Term);
  889       const BinaryOperator *BO = cast<BinaryOperator>(Term);
tools/clang/lib/Sema/Sema.cpp
 2091           !isa<BinaryOperator>(E) &&
tools/clang/lib/Sema/SemaChecking.cpp
 7048     const BinaryOperator *BinOp = cast<BinaryOperator>(E);
 7048     const BinaryOperator *BinOp = cast<BinaryOperator>(E);
 9317   const BinaryOperator *Size = dyn_cast<BinaryOperator>(E);
 9317   const BinaryOperator *Size = dyn_cast<BinaryOperator>(E);
 9491   if (const auto *BO = dyn_cast<BinaryOperator>(SizeofExpr)) {
 9491   if (const auto *BO = dyn_cast<BinaryOperator>(SizeofExpr)) {
 9772     const BinaryOperator * BO = dyn_cast<BinaryOperator>(Ex);
 9772     const BinaryOperator * BO = dyn_cast<BinaryOperator>(Ex);
 9916   } else if (const BinaryOperator *BE = dyn_cast<BinaryOperator>(LenArg)) {
 9916   } else if (const BinaryOperator *BE = dyn_cast<BinaryOperator>(LenArg)) {
10264   if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
10264   if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
10657 static bool CheckTautologicalComparison(Sema &S, BinaryOperator *E,
10773 static void AnalyzeImpConvsInComparison(Sema &S, BinaryOperator *E) {
10781 static void AnalyzeComparison(Sema &S, BinaryOperator *E) {
11030 static void AnalyzeAssignment(Sema &S, BinaryOperator *E) {
11085                      isa<BinaryOperator>(Ignored) ||
11212 static void AnalyzeCompoundAssignment(Sema &S, BinaryOperator *E) {
11509   if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
11509   if (const auto *BO = dyn_cast<BinaryOperator>(E)) {
11510     BinaryOperator::Opcode Opc = BO->getOpcode();
12093   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
12093   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
12117   BinaryOperator *BO = dyn_cast<BinaryOperator>(E);
12117   BinaryOperator *BO = dyn_cast<BinaryOperator>(E);
12448     if (isa<BinaryOperator>(E)) {
12658     } else if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
12658     } else if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
12789   void VisitBinComma(BinaryOperator *BO) {
12797   void VisitBinAssign(BinaryOperator *BO) {
12863   void VisitBinLOr(BinaryOperator *BO) {
12888   void VisitBinLAnd(BinaryOperator *BO) {
13578     void VisitBinaryOperator(BinaryOperator *BinOp) {
14431       const BinaryOperator *BO = cast<BinaryOperator>(TypeExpr);
14431       const BinaryOperator *BO = cast<BinaryOperator>(TypeExpr);
tools/clang/lib/Sema/SemaConcept.cpp
   28   if (auto *BinOp = dyn_cast<BinaryOperator>(ConstraintExpression)) {
   28   if (auto *BinOp = dyn_cast<BinaryOperator>(ConstraintExpression)) {
   56   if (auto *BO = dyn_cast<BinaryOperator>(ConstraintExpr)) {
   56   if (auto *BO = dyn_cast<BinaryOperator>(ConstraintExpr)) {
tools/clang/lib/Sema/SemaDecl.cpp
10898       if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
10898       if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
11030     void VisitBinaryOperator(BinaryOperator *E) {
17180   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(InitExpr)) {
17180   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(InitExpr)) {
tools/clang/lib/Sema/SemaDeclAttr.cpp
  614   } else if (const auto *E = dyn_cast<BinaryOperator>(Ex)) {
  614   } else if (const auto *E = dyn_cast<BinaryOperator>(Ex)) {
tools/clang/lib/Sema/SemaDeclCXX.cpp
 3629       if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 3629       if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 3750     void VisitBinaryOperator(BinaryOperator *E) {
12281     = new (S.Context) BinaryOperator(IterationVarRefRVal.build(S, Loc),
tools/clang/lib/Sema/SemaExceptionSpec.cpp
 1001       if (auto *Op = dyn_cast<BinaryOperator>(E)) {
tools/clang/lib/Sema/SemaExpr.cpp
 3898     if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E->IgnoreParens())) {
 3898     if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E->IgnoreParens())) {
 4346       ((isa<BinaryOperator>(idx) && cast<BinaryOperator>(idx)->isCommaOp()) ||
 4346       ((isa<BinaryOperator>(idx) && cast<BinaryOperator>(idx)->isCommaOp()) ||
 7621   return BinaryOperator::isAdditiveOp(Opc) ||
 7622          BinaryOperator::isMultiplicativeOp(Opc) ||
 7623          BinaryOperator::isShiftOp(Opc) || Opc == BO_And || Opc == BO_Or;
 7647   if (BinaryOperator *OP = dyn_cast<BinaryOperator>(E)) {
 7647   if (BinaryOperator *OP = dyn_cast<BinaryOperator>(E)) {
 7667     BinaryOperatorKind OpKind = BinaryOperator::getOverloadedOpcode(OO);
 7686   if (BinaryOperator *OP = dyn_cast<BinaryOperator>(E))
 7686   if (BinaryOperator *OP = dyn_cast<BinaryOperator>(E))
 7718   unsigned DiagID = BinaryOperator::isBitwiseOp(CondOpcode)
 7724       << BinaryOperator::getOpcodeStr(CondOpcode);
 7729           << BinaryOperator::getOpcodeStr(CondOpcode),
 9646       bool IsGNUIdiom = BinaryOperator::isNullPointerArithmeticExtension(
10239   if (BinaryOperator::isEqualityOp(Opc) &&
10319       (LHSType->isBlockPointerType() && !BinaryOperator::isEqualityOp(Opc)) ||
10606   if (Type->isAnyComplexType() && BinaryOperator::isRelationalOp(Opc))
10610   if (Type->hasFloatingRepresentation() && BinaryOperator::isEqualityOp(Opc))
10647   bool IsRelational = BinaryOperator::isRelationalOp(Opc);
10676   if (!getLangOpts().CPlusPlus && BinaryOperator::isEqualityOp(Opc)) {
11154   if (BinaryOperator::isEqualityOp(Opc) &&
12057   while (const BinaryOperator *BO = dyn_cast<BinaryOperator>(LHS)) {
12057   while (const BinaryOperator *BO = dyn_cast<BinaryOperator>(LHS)) {
12763   auto *BO = new (Context) BinaryOperator(LHS.get(), RHS.get(), Opc, BinOpResTy,
12763   auto *BO = new (Context) BinaryOperator(LHS.get(), RHS.get(), Opc, BinOpResTy,
13053     return new (Context) BinaryOperator(LHS.get(), RHS.get(), Opc, ResultTy, VK,
13080   BinaryOperator *LHSBO = dyn_cast<BinaryOperator>(LHSExpr);
13080   BinaryOperator *LHSBO = dyn_cast<BinaryOperator>(LHSExpr);
13081   BinaryOperator *RHSBO = dyn_cast<BinaryOperator>(RHSExpr);
13081   BinaryOperator *RHSBO = dyn_cast<BinaryOperator>(RHSExpr);
13106     << DiagRange << BinaryOperator::getOpcodeStr(Opc) << OpStr;
13112       << BinaryOperator::getOpcodeStr(Opc),
13121                                        BinaryOperator *Bop) {
13150   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(LHSExpr)) {
13150   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(LHSExpr)) {
13159       if (BinaryOperator *RBop = dyn_cast<BinaryOperator>(Bop->getRHS())) {
13159       if (BinaryOperator *RBop = dyn_cast<BinaryOperator>(Bop->getRHS())) {
13172   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(RHSExpr)) {
13172   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(RHSExpr)) {
13189   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(SubExpr)) {
13189   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(SubExpr)) {
13192         << Bop->getOpcodeStr() << BinaryOperator::getOpcodeStr(Opc)
13204   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(SubExpr)) {
13204   if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(SubExpr)) {
13248   if (BinaryOperator::isBitwiseOp(Opc))
13267     StringRef Shift = BinaryOperator::getOpcodeStr(Opc);
13274   if (BinaryOperator::isComparisonOp(Opc))
13317     = BinaryOperator::getOverloadedOperator(Opc);
13354         BinaryOperator::isAssignmentOp(Opc))
15144   if (auto *BO = dyn_cast<BinaryOperator>(E->IgnoreParenImpCasts())) {
15144   if (auto *BO = dyn_cast<BinaryOperator>(E->IgnoreParenImpCasts())) {
16465     auto *BO = cast<BinaryOperator>(E);
16465     auto *BO = cast<BinaryOperator>(E);
17189   if (BinaryOperator *Op = dyn_cast<BinaryOperator>(E)) {
17189   if (BinaryOperator *Op = dyn_cast<BinaryOperator>(E)) {
17252   if (BinaryOperator *opE = dyn_cast<BinaryOperator>(E))
17252   if (BinaryOperator *opE = dyn_cast<BinaryOperator>(E))
tools/clang/lib/Sema/SemaExprCXX.cpp
 6382         if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(Callee))
 6382         if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(Callee))
 6599   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 6599   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 6606       return new (Context) BinaryOperator(
 7300   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
 7300   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
tools/clang/lib/Sema/SemaExprObjC.cpp
 3402     ACCResult VisitBinComma(BinaryOperator *e) {
tools/clang/lib/Sema/SemaInit.cpp
 7228     auto *BO = cast<BinaryOperator>(Init);
 7228     auto *BO = cast<BinaryOperator>(Init);
tools/clang/lib/Sema/SemaLambda.cpp
  589   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
  589   if (BinaryOperator *BO = dyn_cast<BinaryOperator>(E)) {
tools/clang/lib/Sema/SemaOpenMP.cpp
 5662   if (auto *BO = dyn_cast<BinaryOperator>(S)) {
 5662   if (auto *BO = dyn_cast<BinaryOperator>(S)) {
 5763   if (auto *BO = dyn_cast<BinaryOperator>(S)) {
 5763   if (auto *BO = dyn_cast<BinaryOperator>(S)) {
 5824   if (auto *BO = dyn_cast<BinaryOperator>(RHS)) {
 5824   if (auto *BO = dyn_cast<BinaryOperator>(RHS)) {
 5880   } else if (auto *BO = dyn_cast<BinaryOperator>(S)) {
 5880   } else if (auto *BO = dyn_cast<BinaryOperator>(S)) {
 8252   bool checkBinaryOperation(BinaryOperator *AtomicBinOp, unsigned DiagId = 0,
 8258     BinaryOperator *AtomicBinOp, unsigned DiagId, unsigned NoteId) {
 8267     if (const auto *AtomicInnerBinOp = dyn_cast<BinaryOperator>(
 8267     if (const auto *AtomicInnerBinOp = dyn_cast<BinaryOperator>(
 8345         Op = BinaryOperator::getOpForCompoundAssignment(
 8351       } else if (auto *AtomicBinOp = dyn_cast<BinaryOperator>(
 8351       } else if (auto *AtomicBinOp = dyn_cast<BinaryOperator>(
 8493       const auto *AtomicBinOp =
 8494           dyn_cast<BinaryOperator>(AtomicBody->IgnoreParenImpCasts());
 8556       const auto *AtomicBinOp =
 8557           dyn_cast<BinaryOperator>(AtomicBody->IgnoreParenImpCasts());
 8646       const auto *AtomicBinOp =
 8647           dyn_cast<BinaryOperator>(AtomicBody->IgnoreParenImpCasts());
 8707           BinaryOperator *BinOp = nullptr;
 8709             BinOp = dyn_cast<BinaryOperator>(First);
 8739               BinOp = dyn_cast<BinaryOperator>(Second);
 8773               auto *FirstBinOp = dyn_cast<BinaryOperator>(First);
 8773               auto *FirstBinOp = dyn_cast<BinaryOperator>(First);
 8782                 auto *SecondBinOp = dyn_cast<BinaryOperator>(Second);
 8782                 auto *SecondBinOp = dyn_cast<BinaryOperator>(Second);
13942     Step = cast<BinaryOperator>(CalcStep)->getLHS();
14390       if (auto *BO = dyn_cast<BinaryOperator>(SimpleExpr)) {
14390       if (auto *BO = dyn_cast<BinaryOperator>(SimpleExpr)) {
14391         OOK = BinaryOperator::getOverloadedOperator(BO->getOpcode());
tools/clang/lib/Sema/SemaOverload.cpp
12733   OverloadedOperatorKind Op = BinaryOperator::getOverloadedOperator(Opc);
12743         return new (Context) BinaryOperator(
12874               << FnDecl->getReturnType() << BinaryOperator::getOpcodeStr(Opc)
12895                       << BinaryOperator::getOpcodeStr(Opc)
13056       StringRef OpcStr = BinaryOperator::getOpcodeStr(Opc);
13062              << BinaryOperator::getOpcodeStr(Opc)
13090                                          << BinaryOperator::getOpcodeStr(Opc)
13095           *this, OCD_AmbiguousCandidates, Args, BinaryOperator::getOpcodeStr(Opc),
13118           *this, OCD_AllCandidates, Args, BinaryOperator::getOpcodeStr(Opc),
13316   if (BinaryOperator *op = dyn_cast<BinaryOperator>(NakedMemExpr)) {
13316   if (BinaryOperator *op = dyn_cast<BinaryOperator>(NakedMemExpr)) {
tools/clang/lib/Sema/SemaPseudoObject.cpp
  456     syntactic = new (S.Context) BinaryOperator(syntacticLHS, capturedRHS,
  467       BinaryOperator::getOpForCompoundAssignment(opcode);
 1594     return new (Context) BinaryOperator(LHS, RHS, opcode, Context.DependentTy,
 1664   } else if (BinaryOperator *bop = dyn_cast<BinaryOperator>(syntax)) {
 1664   } else if (BinaryOperator *bop = dyn_cast<BinaryOperator>(syntax)) {
 1667     return new (Context) BinaryOperator(lhs, rhs, bop->getOpcode(),
tools/clang/lib/Sema/SemaStmt.cpp
  133   if (const BinaryOperator *Op = dyn_cast<BinaryOperator>(E)) {
  133   if (const BinaryOperator *Op = dyn_cast<BinaryOperator>(E)) {
  554   void VisitBinaryOperator(BinaryOperator *E) {
 1395     void VisitBinaryOperator(BinaryOperator *E) {
tools/clang/lib/Sema/SemaTemplate.cpp
 3074   if (auto BinOp = dyn_cast<BinaryOperator>(Clause->IgnoreParenImpCasts())) {
 3091   auto *BinOp = dyn_cast<BinaryOperator>(Cond->IgnoreParenImpCasts());
 3091   auto *BinOp = dyn_cast<BinaryOperator>(Cond->IgnoreParenImpCasts());
 3098   auto *InnerBinOp = dyn_cast<BinaryOperator>(LHS->IgnoreParenImpCasts());
 3098   auto *InnerBinOp = dyn_cast<BinaryOperator>(LHS->IgnoreParenImpCasts());
tools/clang/lib/Sema/SemaTemplateVariadic.cpp
 1147   if ((OCE && OCE->isInfixBinaryOp()) || isa<BinaryOperator>(E) ||
 1235         << BinaryOperator::getOpcodeStr(Operator);
tools/clang/lib/Sema/TreeTransform.h
13198     BinaryOperatorKind Opc = BinaryOperator::getOverloadedOpcode(Op);
13199     if (BinaryOperator::isAssignmentOp(Opc))
13240       BinaryOperatorKind Opc = BinaryOperator::getOverloadedOpcode(Op);
13303   BinaryOperatorKind Opc = BinaryOperator::getOverloadedOpcode(Op);
tools/clang/lib/Serialization/ASTReaderStmt.cpp
  866 void ASTStmtReader::VisitBinaryOperator(BinaryOperator *E) {
 2687       S = new (Context) BinaryOperator(Empty);
tools/clang/lib/Serialization/ASTWriterStmt.cpp
  772 void ASTStmtWriter::VisitBinaryOperator(BinaryOperator *E) {
tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
  130   if (const auto *BE = dyn_cast<BinaryOperator>(LenArg->IgnoreParenCasts())) {
  130   if (const auto *BE = dyn_cast<BinaryOperator>(LenArg->IgnoreParenCasts())) {
  188       if (const auto *BE =
  189               dyn_cast<BinaryOperator>(DstArg->IgnoreParenImpCasts())) {
tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
  413   BinaryOperator::Opcode OpCode = CondBSE->getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
  213   if (const BinaryOperator *B = dyn_cast<BinaryOperator>(expr)) {
  213   if (const BinaryOperator *B = dyn_cast<BinaryOperator>(expr)) {
  264   const BinaryOperator *B = dyn_cast<BinaryOperator>(condition);
  264   const BinaryOperator *B = dyn_cast<BinaryOperator>(condition);
tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp
   77   if (const auto *B = dyn_cast<BinaryOperator>(Parent)) {
   77   if (const auto *B = dyn_cast<BinaryOperator>(Parent)) {
   78     BinaryOperator::Opcode Opc = B->getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
  105     const BinaryOperator *BO =
  106       dyn_cast<BinaryOperator>(Ex->IgnoreParenCasts());
  294   bool isIncrement(VarDecl *VD, const BinaryOperator* B) {
  299     const BinaryOperator* BRHS = dyn_cast<BinaryOperator>(RHS);
  299     const BinaryOperator* BRHS = dyn_cast<BinaryOperator>(RHS);
  328     if (const BinaryOperator* B = dyn_cast<BinaryOperator>(S)) {
  328     if (const BinaryOperator* B = dyn_cast<BinaryOperator>(S)) {
tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
   76     void VisitBinaryOperator(const BinaryOperator *BO);
  164                                                     const BinaryOperator *BO) {
tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp
   26 class DivZeroChecker : public Checker< check::PreStmt<BinaryOperator> > {
   32   void checkPreStmt(const BinaryOperator *B, CheckerContext &C) const;
   38   if (const auto *BE = dyn_cast<BinaryOperator>(S))
   38   if (const auto *BE = dyn_cast<BinaryOperator>(S))
   57 void DivZeroChecker::checkPreStmt(const BinaryOperator *B,
   59   BinaryOperator::Opcode Op = B->getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
  363       return (*Str + " " + BinaryOperator::getOpcodeStr(S->getOpcode()) + " " +
  375         return (*Str1 + " " + BinaryOperator::getOpcodeStr(S->getOpcode()) +
tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp
   26   : public Checker< check::PreStmt<BinaryOperator> > {
   30   void checkPreStmt(const BinaryOperator *B, CheckerContext &C) const;
   34 void FixedAddressChecker::checkPreStmt(const BinaryOperator *B,
tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
   48   bool VisitBinaryOperator(const BinaryOperator *B);
   53   void reportIdenticalExpr(const BinaryOperator *B, bool CheckBitwise,
   55   void checkBitwiseOrLogicalOp(const BinaryOperator *B, bool CheckBitwise);
   56   void checkComparisonOp(const BinaryOperator *B);
   60 void FindIdenticalExprVisitor::reportIdenticalExpr(const BinaryOperator *B,
   77 void FindIdenticalExprVisitor::checkBitwiseOrLogicalOp(const BinaryOperator *B,
   88   while (const BinaryOperator *B2 = dyn_cast<BinaryOperator>(LHS)) {
   88   while (const BinaryOperator *B2 = dyn_cast<BinaryOperator>(LHS)) {
  181 bool FindIdenticalExprVisitor::VisitBinaryOperator(const BinaryOperator *B) {
  182   BinaryOperator::Opcode Op = B->getOpcode();
  184   if (BinaryOperator::isBitwiseOp(Op))
  187   if (BinaryOperator::isLogicalOp(Op))
  190   if (BinaryOperator::isComparisonOp(Op))
  199 void FindIdenticalExprVisitor::checkComparisonOp(const BinaryOperator *B) {
  200   BinaryOperator::Opcode Op = B->getOpcode();
  450     const BinaryOperator *BinOp1 = cast<BinaryOperator>(Stmt1);
  450     const BinaryOperator *BinOp1 = cast<BinaryOperator>(Stmt1);
  451     const BinaryOperator *BinOp2 = cast<BinaryOperator>(Stmt2);
  451     const BinaryOperator *BinOp2 = cast<BinaryOperator>(Stmt2);
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
  322                                      BinaryOperator::Opcode Opc);
  325                                             BinaryOperator::Opcode Opc);
  328                                             BinaryOperator::Opcode Opc1,
  330                                             BinaryOperator::Opcode Opc2);
  338                                                    BinaryOperator::Opcode Opc);
  341     SymbolRef NewSym, SymbolRef CondSym, BinaryOperator::Opcode Opc);
 1636              BinaryOperator::Opcode Opc);
 1638              BinaryOperator::Opcode Opc);
 2183                                      BinaryOperator::Opcode Opc) {
 2196                                             BinaryOperator::Opcode Opc) {
 2208                                             BinaryOperator::Opcode Opc1,
 2210                                             BinaryOperator::Opcode Opc2) {
 2237                                                    BinaryOperator::Opcode Opc) {
 2253     SymbolRef NewSym, SymbolRef CondSym, BinaryOperator::Opcode Opc) {
 2351              BinaryOperator::Opcode Opc) {
 2356              BinaryOperator::Opcode Opc) {
tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
  161     void VisitBinaryOperator(const BinaryOperator *BO);
  668     const BinaryOperator *BO) {
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
 1243   const BinaryOperator *BO = nullptr;
 1249         if (const BinaryOperator *B =
 1250                 dyn_cast<BinaryOperator>(InitExpr->IgnoreParenImpCasts())) {
 1259   } else if (const BinaryOperator *B = dyn_cast<BinaryOperator>(Condition)) {
 1259   } else if (const BinaryOperator *B = dyn_cast<BinaryOperator>(Condition)) {
tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
  515   BinaryOperator::Opcode OpCode = CondBSE->getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
   35   const BinaryOperator *mulop;
   39   MallocOverflowCheck(const BinaryOperator *m, const Expr *v, APSInt val)
   75   const BinaryOperator * mulop = nullptr;
   81     if (const BinaryOperator *binop = dyn_cast<BinaryOperator>(e)) {
   81     if (const BinaryOperator *binop = dyn_cast<BinaryOperator>(e)) {
  175     void CheckAssignmentExpr(BinaryOperator *AssignEx) {
  190       if (const BinaryOperator *BOp = dyn_cast<BinaryOperator>(rhse)) {
  190       if (const BinaryOperator *BOp = dyn_cast<BinaryOperator>(rhse)) {
  227     void VisitBinaryOperator(BinaryOperator *E) {
tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
  114   void VisitBinMul(const BinaryOperator *E) {
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
  989   if (auto *BinOp = dyn_cast<BinaryOperator>(S)) {
 1150   const auto *BinOp = dyn_cast<BinaryOperator>(S);
 1150   const auto *BinOp = dyn_cast<BinaryOperator>(S);
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp
   45           check::PreStmt<BinaryOperator>, check::PreStmt<UnaryOperator>,
   64   void checkPreStmt(const BinaryOperator *BOp, CheckerContext &C) const;
  317 void PointerArithChecker::checkPreStmt(const BinaryOperator *BOp,
tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp
   26   : public Checker< check::PreStmt<BinaryOperator> > {
   30   void checkPreStmt(const BinaryOperator *B, CheckerContext &C) const;
   34 void PointerSubChecker::checkPreStmt(const BinaryOperator *B,
tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
  111     BinaryOperator::Opcode getOpcode() const {
  114       BinaryOperator::Opcode Op =
  327   BinaryOperator::Opcode Op = getOpcode();
tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp
   78     : public Checker<check::PreStmt<BinaryOperator>, check::BranchCondition,
   84   void checkPreStmt(const BinaryOperator *B, CheckerContext &C) const;
  104     if (const BinaryOperator *BO = P->getStmtAs<BinaryOperator>()) {
  104     if (const BinaryOperator *BO = P->getStmtAs<BinaryOperator>()) {
  105       BinaryOperator::Opcode Op = BO->getOpcode();
  200 void TestAfterDivZeroChecker::checkPreStmt(const BinaryOperator *B,
  202   BinaryOperator::Opcode Op = B->getOpcode();
  214   if (const BinaryOperator *B = dyn_cast<BinaryOperator>(Condition)) {
  214   if (const BinaryOperator *B = dyn_cast<BinaryOperator>(Condition)) {
tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
   28   : public Checker< check::PostStmt<BinaryOperator> > {
   33   void checkPostStmt(const BinaryOperator *B, CheckerContext &C) const;
   60 static bool isShiftOverflow(const BinaryOperator *B, CheckerContext &C) {
   65 static bool isLeftShiftResultUnrepresentable(const BinaryOperator *B,
   75 void UndefResultChecker::checkPostStmt(const BinaryOperator *B,
  112          << BinaryOperator::getOpcodeStr(B->getOpcode())
  169            << BinaryOperator::getOpcodeStr(B->getOpcode())
tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp
   73     if (const BinaryOperator *B = dyn_cast<BinaryOperator>(StoreE)) {
   73     if (const BinaryOperator *B = dyn_cast<BinaryOperator>(StoreE)) {
tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
  205 BasicValueFactory::evalAPSInt(BinaryOperator::Opcode Op,
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
  646         const auto *B = cast<BinaryOperator>(Parent);
  646         const auto *B = cast<BinaryOperator>(Parent);
  812   const auto *B = cast<BinaryOperator>(T);
  812   const auto *B = cast<BinaryOperator>(T);
 1356       const auto *BO = cast<BinaryOperator>(S);
 1356       const auto *BO = cast<BinaryOperator>(S);
 2363     if (const auto *B = dyn_cast<BinaryOperator>(S))
 2363     if (const auto *B = dyn_cast<BinaryOperator>(S))
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
   74 static const Expr *peelOffPointerArithmetic(const BinaryOperator *B) {
  109     } else if (const auto *B = dyn_cast<BinaryOperator>(E)) {
  109     } else if (const auto *B = dyn_cast<BinaryOperator>(E)) {
  277     if (auto *BO = PS->getStmtAs<BinaryOperator>())
  865     } else if (const auto *BO = dyn_cast<BinaryOperator>(S)) {
  865     } else if (const auto *BO = dyn_cast<BinaryOperator>(S)) {
 1410       if (const BinaryOperator *BO = P->getStmtAs<BinaryOperator>())
 1410       if (const BinaryOperator *BO = P->getStmtAs<BinaryOperator>())
 1778     if (const auto *BinOp = dyn_cast<BinaryOperator>(ElseCond))
 1778     if (const auto *BinOp = dyn_cast<BinaryOperator>(ElseCond))
 1897   if (auto *BO = dyn_cast<BinaryOperator>(Ex))
 2224     const auto *BO = cast<BinaryOperator>(Term);
 2224     const auto *BO = cast<BinaryOperator>(Term);
 2236   while (const auto *InnerBO = dyn_cast<BinaryOperator>(Cond)) {
 2236   while (const auto *InnerBO = dyn_cast<BinaryOperator>(Cond)) {
 2275         if (auto P = VisitTrueTest(Cond, cast<BinaryOperator>(CondTmp),
 2405     const Expr *Cond, const BinaryOperator *BExpr, BugReporterContext &BRC,
 2432   BinaryOperator::Opcode Op = BExpr->getOpcode();
 2434   if (BinaryOperator::isAssignmentOp(Op)) {
 2444       !BinaryOperator::isComparisonOp(Op) || Op == BO_Cmp)
 2483       Out << BinaryOperator::getOpcodeStr(Op) << ' ';
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
 1031   if (const auto *BO = dyn_cast<BinaryOperator>(Syntactic))
 1031   if (const auto *BO = dyn_cast<BinaryOperator>(Syntactic))
tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp
   84   if (auto Assign = dyn_cast_or_null<BinaryOperator>(S)) {
tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
  313         HandleBranch(cast<BinaryOperator>(Term)->getLHS(), Term, B, Pred);
tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
  364           BinaryOperatorKind Op = cast<BinaryOperator>(S)->getOpcode();
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
 1531       const auto *B = cast<BinaryOperator>(S);
 1531       const auto *B = cast<BinaryOperator>(S);
 1552         VisitBinaryOperator(cast<BinaryOperator>(S), Pred, Tmp);
 1556         VisitBinaryOperator(cast<BinaryOperator>(S), Pred, Dst);
 1648       VisitBinaryOperator(cast<BinaryOperator>(S), Pred, Dst);
 2030     const auto *BO = dyn_cast<BinaryOperator>(Condition);
 2030     const auto *BO = dyn_cast<BinaryOperator>(Condition);
 2059   const auto *BO = dyn_cast<BinaryOperator>(Condition);
 2059   const auto *BO = dyn_cast<BinaryOperator>(Condition);
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
   40 void ExprEngine::VisitBinaryOperator(const BinaryOperator* B,
   61     BinaryOperator::Opcode Op = B->getOpcode();
  638 void ExprEngine::VisitLogicalExpr(const BinaryOperator* B, ExplodedNode *Pred,
  700   if (const BinaryOperator *Term = cast_or_null<BinaryOperator>(T.getStmt())) {
  700   if (const BinaryOperator *Term = cast_or_null<BinaryOperator>(T.getStmt())) {
 1098     BinaryOperator::Opcode Op = U->isIncrementOp() ? BO_Add : BO_Sub;
tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
  216   auto CondOp = Matches[0].getNodeAs<BinaryOperator>("conditionOperator");
tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
  364       if (BinaryOperator::isEqualityOp(SSE->getOpcode()) ||
  365           BinaryOperator::isRelationalOp(SSE->getOpcode())) {
  460   BinaryOperator::Opcode Operator = SIE->getOpcode();
tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
   34     BinaryOperator::Opcode op = SIE->getOpcode();
   35     if (BinaryOperator::isComparisonOp(op) && op != BO_Cmp) {
   37         op = BinaryOperator::negateComparisonOp(op);
   50     BinaryOperator::Opcode Op = SSE->getOpcode();
   61       Op = BinaryOperator::reverseComparisonOp(Op);
   63         Op = BinaryOperator::negateComparisonOp(Op);
  121                                                       BinaryOperator::Opcode Op,
  133       if (BinaryOperator::isComparisonOp(SE->getOpcode()))
  188     BinaryOperator::Opcode Op = SE->getOpcode();
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
   67 NonLoc SValBuilder::makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
   78                                BinaryOperator::Opcode op, const SymExpr *rhs,
   85 NonLoc SValBuilder::makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
  377 SVal SValBuilder::makeSymExprValNN(BinaryOperator::Opcode Op,
  404 SVal SValBuilder::evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
tools/clang/lib/StaticAnalyzer/Core/SVals.cpp
  243                                     BinaryOperator::Opcode Op,
  269                                  BinaryOperator::Opcode Op,
tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
   38   SVal evalBinOpNN(ProgramStateRef state, BinaryOperator::Opcode op,
   40   SVal evalBinOpLL(ProgramStateRef state, BinaryOperator::Opcode op,
   42   SVal evalBinOpLN(ProgramStateRef state, BinaryOperator::Opcode op,
   53   SVal MakeSymIntVal(const SymExpr *LHS, BinaryOperator::Opcode op,
  218                                     BinaryOperator::Opcode op,
  287   if (BinaryOperator::isComparisonOp(op)) {
  313 static bool isInRelation(BinaryOperator::Opcode Rel, SymbolRef Sym,
  358     if (BinaryOperator::isAdditiveOp(SymInt->getOpcode()))
  372                                    BinaryOperator::Opcode Op,
  388   if (BinaryOperator::isComparisonOp(Op))
  390   else if (BinaryOperator::isAdditiveOp(Op))
  402   BinaryOperator::Opcode ResultOp;
  404   if (BinaryOperator::isComparisonOp(Op)) {
  410       ResultOp = BinaryOperator::reverseComparisonOp(Op);
  438 static bool shouldRearrange(ProgramStateRef State, BinaryOperator::Opcode Op,
  441     (!BinaryOperator::isComparisonOp(Op) ||
  447                                      BinaryOperator::Opcode Op, NonLoc Lhs,
  468   if (BinaryOperator::isComparisonOp(Op)) {
  473   } else if (BinaryOperator::isAdditiveOp(Op)) {
  505                                   BinaryOperator::Opcode op,
  559           if (!BinaryOperator::isComparisonOp(op))
  567           if (!BinaryOperator::isComparisonOp(op))
  603         if (BinaryOperator::isComparisonOp(op)) {
  611         } else if (!BinaryOperator::isShiftOp(op)) {
  634         op = BinaryOperator::reverseComparisonOp(op);
  670           BinaryOperator::Opcode opc = symIntExpr->getOpcode();
  707             opc = BinaryOperator::negateComparisonOp(opc);
  717           if (BinaryOperator::isAdditiveOp(op)) {
  718             BinaryOperator::Opcode lop = symIntExpr->getOpcode();
  719             if (BinaryOperator::isAdditiveOp(lop)) {
  776                                             BinaryOperator::Opcode op,
  780   if (!BinaryOperator::isComparisonOp(op))
  822                                   BinaryOperator::Opcode op,
  831   if (!(BinaryOperator::isComparisonOp(op) || op == BO_Sub))
  887       if (!BinaryOperator::isComparisonOp(op) || op == BO_Cmp)
  891       op = BinaryOperator::reverseComparisonOp(op);
  935         if (BinaryOperator::isComparisonOp(op))
  947         if (BinaryOperator::isComparisonOp(op)) {
 1104                                   BinaryOperator::Opcode op,
 1288           BinaryOperator::isComparisonOp(S->getOpcode())) {
tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
   45      << BinaryOperator::getOpcodeStr(getOpcode()) << ' ';
   62      << BinaryOperator::getOpcodeStr(getOpcode())
   72      << BinaryOperator::getOpcodeStr(getOpcode())
  270                                                BinaryOperator::Opcode op,
  288                                                BinaryOperator::Opcode op,
  306                                                BinaryOperator::Opcode op,
tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp
  449   if (auto *B = dyn_cast<BinaryOperator>(S))
tools/clang/lib/Tooling/Transformer/SourceCodeBuilders.cpp
   34   if (isa<UnaryOperator>(Expr) || isa<BinaryOperator>(Expr) ||
   52   if (isa<BinaryOperator>(Expr) || isa<AbstractConditionalOperator>(Expr))
tools/clang/tools/extra/clang-tidy/abseil/DurationAdditionCheck.cpp
   33   const BinaryOperator *Binop =
   34       Result.Nodes.getNodeAs<clang::BinaryOperator>("binop");
tools/clang/tools/extra/clang-tidy/abseil/DurationComparisonCheck.cpp
   31   const auto *Binop = Result.Nodes.getNodeAs<BinaryOperator>("binop");
   31   const auto *Binop = Result.Nodes.getNodeAs<BinaryOperator>("binop");
tools/clang/tools/extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
  172   if (const auto *MultBinOp =
  173           Result.Nodes.getNodeAs<BinaryOperator>("mult_binop")) {
  196   } else if (const auto *DivBinOp =
  197                  Result.Nodes.getNodeAs<BinaryOperator>("div_binop")) {
tools/clang/tools/extra/clang-tidy/abseil/DurationSubtractionCheck.cpp
   33   const auto *Binop = Result.Nodes.getNodeAs<BinaryOperator>("binop");
   33   const auto *Binop = Result.Nodes.getNodeAs<BinaryOperator>("binop");
tools/clang/tools/extra/clang-tidy/abseil/StringFindStartswithCheck.cpp
   65   const auto *ComparisonExpr = Result.Nodes.getNodeAs<BinaryOperator>("expr");
   65   const auto *ComparisonExpr = Result.Nodes.getNodeAs<BinaryOperator>("expr");
tools/clang/tools/extra/clang-tidy/abseil/TimeComparisonCheck.cpp
   32   const auto *Binop = Result.Nodes.getNodeAs<BinaryOperator>("binop");
   32   const auto *Binop = Result.Nodes.getNodeAs<BinaryOperator>("binop");
tools/clang/tools/extra/clang-tidy/abseil/TimeSubtractionCheck.cpp
  130   const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("binop");
  130   const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("binop");
tools/clang/tools/extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp
   74   const auto &BinOp = *Result.Nodes.getNodeAs<BinaryOperator>("binop");
   74   const auto &BinOp = *Result.Nodes.getNodeAs<BinaryOperator>("binop");
tools/clang/tools/extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
   37   if (const auto *Op = dyn_cast<BinaryOperator>(E)) {
   37   if (const auto *Op = dyn_cast<BinaryOperator>(E)) {
tools/clang/tools/extra/clang-tidy/bugprone/IntegerDivisionCheck.cpp
   49   const auto *IntDiv = Result.Nodes.getNodeAs<BinaryOperator>("IntDiv");
   49   const auto *IntDiv = Result.Nodes.getNodeAs<BinaryOperator>("IntDiv");
tools/clang/tools/extra/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp
   81   const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("BinOp");
   81   const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("BinOp");
tools/clang/tools/extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp
   59   if (const auto *Bop = dyn_cast<BinaryOperator>(E)) {
   59   if (const auto *Bop = dyn_cast<BinaryOperator>(E)) {
tools/clang/tools/extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
  234     if (dyn_cast<BinaryOperator>(LengthExpr->IgnoreParenImpCasts()))
  324   const auto *BO = dyn_cast<BinaryOperator>(LengthExpr);
  324   const auto *BO = dyn_cast<BinaryOperator>(LengthExpr);
tools/clang/tools/extra/clang-tidy/bugprone/PosixReturnCheck.cpp
   23       (Result.Nodes.getNodeAs<BinaryOperator>(BindingStr))->getLHS());
   63   if (const auto *LessThanZeroOp =
   64           Result.Nodes.getNodeAs<BinaryOperator>("ltzop")) {
   72   if (const auto *AlwaysTrueOp =
   73           Result.Nodes.getNodeAs<BinaryOperator>("atop")) {
   80   const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("binop");
   80   const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("binop");
tools/clang/tools/extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp
   41   } else if (const auto *BE = dyn_cast<BinaryOperator>(E)) {
   41   } else if (const auto *BE = dyn_cast<BinaryOperator>(E)) {
tools/clang/tools/extra/clang-tidy/bugprone/StringIntegerAssignmentCheck.cpp
   57     if (const auto *BinOp = dyn_cast<BinaryOperator>(E)) {
   57     if (const auto *BinOp = dyn_cast<BinaryOperator>(E)) {
tools/clang/tools/extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp
  173   if (const auto *DiffEnumOp =
  174           Result.Nodes.getNodeAs<BinaryOperator>("diffEnumOp")) {
tools/clang/tools/extra/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp
  204   if (const auto *BinOp =
  205           Result.Nodes.getNodeAs<BinaryOperator>("suspicious-operator")) {
tools/clang/tools/extra/clang-tidy/bugprone/TooSmallLoopVariableCheck.cpp
  115   if (const auto *BinOperator = dyn_cast<BinaryOperator>(UpperBound)) {
  115   if (const auto *BinOperator = dyn_cast<BinaryOperator>(UpperBound)) {
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp
  424                                                      const BinaryOperator &Op) {
  437   if (const auto *Op = Result.Nodes.getNodeAs<BinaryOperator>("binary_op"))
  437   if (const auto *Op = Result.Nodes.getNodeAs<BinaryOperator>("binary_op"))
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.h
   92                             const BinaryOperator &Op);
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp
  250   const auto *OwnerAssignment =
  251       Nodes.getNodeAs<BinaryOperator>("owner_assignment");
  292   const auto *BadOwnerAssignment =
  293       Nodes.getNodeAs<BinaryOperator>("bad_owner_creation_assignment");
tools/clang/tools/extra/clang-tidy/hicpp/SignedBitwiseCheck.cpp
   77     if (const auto *BinaryOp =
   78             N.getNodeAs<BinaryOperator>("binary-no-sign-interference"))
   80     else if (const auto *BinaryOp =
   81                  N.getNodeAs<BinaryOperator>("binary-sign-interference"))
tools/clang/tools/extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp
   94   } else if (const auto *MatchedDecl =
   95                  Result.Nodes.getNodeAs<BinaryOperator>("and")) {
tools/clang/tools/extra/clang-tidy/misc/RedundantExpressionCheck.cpp
  132     return cast<BinaryOperator>(Left)->getOpcode() ==
  133            cast<BinaryOperator>(Right)->getOpcode();
  403   if (const auto *BinExpr = Result.Nodes.getNodeAs<BinaryOperator>(Id)) {
  403   if (const auto *BinExpr = Result.Nodes.getNodeAs<BinaryOperator>(Id)) {
  502   if (const auto *Bin = Result.Nodes.getNodeAs<BinaryOperator>(Id)) {
  502   if (const auto *Bin = Result.Nodes.getNodeAs<BinaryOperator>(Id)) {
  533     Opcode = BinaryOperator::getOverloadedOpcode(OverloadedOperatorExpr->getOperator());
  535     return BinaryOperator::isComparisonOp(Opcode);
  544     Opcode = BinaryOperator::reverseComparisonOp(Opcode);
  546     Opcode = BinaryOperator::negateComparisonOp(Opcode);
  551 static bool areSidesBinaryConstExpressions(const BinaryOperator *&BinOp, const ASTContext *AstCtx) {
  552   const auto *LhsBinOp = dyn_cast<BinaryOperator>(BinOp->getLHS());
  552   const auto *LhsBinOp = dyn_cast<BinaryOperator>(BinOp->getLHS());
  553   const auto *RhsBinOp = dyn_cast<BinaryOperator>(BinOp->getRHS());
  553   const auto *RhsBinOp = dyn_cast<BinaryOperator>(BinOp->getRHS());
  573 static bool retrieveConstExprFromBothSides(const BinaryOperator *&BinOp,
  584   const auto *BinOpLhs = cast<BinaryOperator>(BinOp->getLHS());
  584   const auto *BinOpLhs = cast<BinaryOperator>(BinOp->getLHS());
  585   const auto *BinOpRhs = cast<BinaryOperator>(BinOp->getRHS());
  585   const auto *BinOpRhs = cast<BinaryOperator>(BinOp->getRHS());
  773   if (const auto *ComparisonOperator = Result.Nodes.getNodeAs<BinaryOperator>(
  773   if (const auto *ComparisonOperator = Result.Nodes.getNodeAs<BinaryOperator>(
  793   } else if (const auto *ComparisonOperator =
  794                  Result.Nodes.getNodeAs<BinaryOperator>(
  842   if (const auto *ComparisonOperator = Result.Nodes.getNodeAs<BinaryOperator>(
  842   if (const auto *ComparisonOperator = Result.Nodes.getNodeAs<BinaryOperator>(
  873   } else if (const auto *IneffectiveOperator =
  874                  Result.Nodes.getNodeAs<BinaryOperator>(
  915   if (const auto *ComparisonOperator = Result.Nodes.getNodeAs<BinaryOperator>(
  915   if (const auto *ComparisonOperator = Result.Nodes.getNodeAs<BinaryOperator>(
  979   if (const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("binary")) {
  979   if (const auto *BinOp = Result.Nodes.getNodeAs<BinaryOperator>("binary")) {
 1036   if (const auto *BinaryAndExpr = Result.Nodes.getNodeAs<BinaryOperator>(
 1036   if (const auto *BinaryAndExpr = Result.Nodes.getNodeAs<BinaryOperator>(
tools/clang/tools/extra/clang-tidy/misc/StaticAssertCheck.cpp
   87   const auto *AssertExprRoot =
   88       Result.Nodes.getNodeAs<BinaryOperator>("assertExprRoot");
tools/clang/tools/extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
  107   const auto *BinaryOp = Result.Nodes.getNodeAs<BinaryOperator>("SizeBinaryOp");
  107   const auto *BinaryOp = Result.Nodes.getNodeAs<BinaryOperator>("SizeBinaryOp");
tools/clang/tools/extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
   88   return isa<BinaryOperator>(Statement) || isa<UnaryOperator>(Statement);
  234           (isa<BinaryOperator>(S) && cast<BinaryOperator>(S)->isLogicalOp())) {
  234           (isa<BinaryOperator>(S) && cast<BinaryOperator>(S)->isLogicalOp())) {
tools/clang/tools/extra/clang-tidy/readability/NonConstParameterCheck.cpp
   58     if (const auto *B = dyn_cast<BinaryOperator>(S)) {
   58     if (const auto *B = dyn_cast<BinaryOperator>(S)) {
  169   if (const auto *B = dyn_cast<BinaryOperator>(E)) {
  169   if (const auto *B = dyn_cast<BinaryOperator>(E)) {
tools/clang/tools/extra/clang-tidy/readability/RedundantStringCStrCheck.cpp
   29   if (isa<clang::BinaryOperator>(&ExprNode) ||
tools/clang/tools/extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
   77   if (isa<BinaryOperator>(E) || isa<ConditionalOperator>(E))
   90 StringRef negatedOperator(const BinaryOperator *BinOp) {
  176       (isa<BinaryOperator>(E) ? ("(" + getText(Result, *E) + ")")
  223     if (const auto *BinOp = dyn_cast<BinaryOperator>(E)) {
  223     if (const auto *BinOp = dyn_cast<BinaryOperator>(E)) {
  326   bool VisitBinaryOperator(BinaryOperator *Op) {
  350   if (const auto *BinOp = dyn_cast<BinaryOperator>(E))
  350   if (const auto *BinOp = dyn_cast<BinaryOperator>(E))
  359     const MatchFinder::MatchResult &Result, const BinaryOperator *Op) {
tools/clang/tools/extra/clang-tidy/readability/SimplifyBooleanExprCheck.h
   35                    const BinaryOperator *Op);
tools/clang/tools/extra/clang-tidy/utils/ASTUtils.cpp
   29   if (clang::isa<clang::BinaryOperator>(E_base) ||
   58   if (const auto *BO = dyn_cast<BinaryOperator>(Flags))
   58   if (const auto *BO = dyn_cast<BinaryOperator>(Flags))
tools/clang/tools/extra/clang-tidy/utils/ExprSequence.cpp
  107     if (const auto *BO = dyn_cast<BinaryOperator>(Parent)) {
  107     if (const auto *BO = dyn_cast<BinaryOperator>(Parent)) {
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractVariable.cpp
  211     if (const BinaryOperator *Op =
  212         llvm::dyn_cast_or_null<BinaryOperator>(N.ASTNode.get<Expr>())) {
  224       Kind = BinaryOperator::getOverloadedOpcode(Op->getOperator());
  382   if (BinOp.parse(*N) && BinaryOperator::isAssignmentOp(BinOp.Kind))
  416   if (const BinaryOperator *BinOpExpr =
  417           dyn_cast_or_null<BinaryOperator>(SelectedExpr)) {
tools/clang/unittests/AST/ASTTypeTraitsTest.cpp
   25   return ASTNodeKind::getFromNodeKind<T>();
tools/clang/unittests/Tooling/ASTSelectionTest.cpp
  107           typename std::enable_if<std::is_base_of<Stmt, T>::value, T>::type
  107           typename std::enable_if<std::is_base_of<Stmt, T>::value, T>::type
  109   checkNodeImpl(isa<T>(StmtNode.Node.get<Stmt>()), StmtNode, SelectionKind,
  346         checkNode<BinaryOperator>(Body.Children[2],
  371         checkNode<BinaryOperator>(Body.Children[3],
  601         const auto &BinOp = checkNode<BinaryOperator>(
  647         const auto &BinOp = checkNode<BinaryOperator>(
tools/clang/unittests/Tooling/RecursiveASTVisitorTestPostOrderVisitor.cpp
   38   bool VisitBinaryOperator(BinaryOperator *Op) {
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
 1447     : public __and_<is_destructible<_Tp>, integral_constant<bool,
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1955     { typedef _Tp     type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>
 2157     { typedef _Tp type; };