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

References

tools/clang/lib/Sema/SemaExpr.cpp
12830   std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr);
12831   if (!LHS.isUsable() || !RHS.isUsable())
12844         ResultTy = InvalidOperands(OpLoc, LHS, RHS);
12854       ResultTy = InvalidOperands(OpLoc, LHS, RHS);
12869     ResultTy = CheckAssignmentOperands(LHS.get(), RHS, OpLoc, QualType());
12876       DiagnoseSelfAssignment(*this, LHS.get(), RHS.get(), OpLoc, true);
12877       DiagnoseSelfMove(LHS.get(), RHS.get(), OpLoc);
12892       if (auto *BE = dyn_cast<BlockExpr>(RHS.get()->IgnoreParens()))
12906     ResultTy = CheckPointerToMemberOperands(LHS, RHS, VK, OpLoc,
12912     ResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, false,
12916     ResultTy = CheckRemainderOperands(LHS, RHS, OpLoc);
12920     ResultTy = CheckAdditionOperands(LHS, RHS, OpLoc, Opc);
12924     ResultTy = CheckSubtractionOperands(LHS, RHS, OpLoc);
12928     ResultTy = CheckShiftOperands(LHS, RHS, OpLoc, Opc);
12935     ResultTy = CheckCompareOperands(LHS, RHS, OpLoc, Opc);
12940     ResultTy = CheckCompareOperands(LHS, RHS, OpLoc, Opc);
12944     ResultTy = CheckCompareOperands(LHS, RHS, OpLoc, Opc);
12948     checkObjCPointerIntrospection(*this, LHS, RHS, OpLoc);
12952     ResultTy = CheckBitwiseOperands(LHS, RHS, OpLoc, Opc);
12957     ResultTy = CheckLogicalOperands(LHS, RHS, OpLoc, Opc);
12962     CompResultTy = CheckMultiplyDivideOperands(LHS, RHS, OpLoc, true,
12965     if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
12966       ResultTy = CheckAssignmentOperands(LHS.get(), RHS, OpLoc, CompResultTy);
12969     CompResultTy = CheckRemainderOperands(LHS, RHS, OpLoc, true);
12971     if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
12972       ResultTy = CheckAssignmentOperands(LHS.get(), RHS, OpLoc, CompResultTy);
12976     CompResultTy = CheckAdditionOperands(LHS, RHS, OpLoc, Opc, &CompLHSTy);
12977     if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
12978       ResultTy = CheckAssignmentOperands(LHS.get(), RHS, OpLoc, CompResultTy);
12982     CompResultTy = CheckSubtractionOperands(LHS, RHS, OpLoc, &CompLHSTy);
12983     if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
12984       ResultTy = CheckAssignmentOperands(LHS.get(), RHS, OpLoc, CompResultTy);
12988     CompResultTy = CheckShiftOperands(LHS, RHS, OpLoc, Opc, true);
12990     if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
12991       ResultTy = CheckAssignmentOperands(LHS.get(), RHS, OpLoc, CompResultTy);
12995     DiagnoseSelfAssignment(*this, LHS.get(), RHS.get(), OpLoc, true);
12998     CompResultTy = CheckBitwiseOperands(LHS, RHS, OpLoc, Opc);
13000     if (!CompResultTy.isNull() && !LHS.isInvalid() && !RHS.isInvalid())
13001       ResultTy = CheckAssignmentOperands(LHS.get(), RHS, OpLoc, CompResultTy);
13004     ResultTy = CheckCommaOperands(*this, LHS, RHS, OpLoc);
13005     if (getLangOpts().CPlusPlus && !RHS.isInvalid()) {
13006       VK = RHS.get()->getValueKind();
13007       OK = RHS.get()->getObjectKind();
13011   if (ResultTy.isNull() || LHS.isInvalid() || RHS.isInvalid())
13018   assert(isVector(RHS.get()->getType(), Context.HalfTy) ==
13026   CheckArrayAccess(RHS.get());
13033       SourceLocation RHSLocEnd = getLocForEndOfToken(RHS.get()->getEndLoc());
13046     DiagnoseDirectIsaAccess(*this, OIRE, OpLoc, RHS.get());
13051       return convertHalfVecBinOp(*this, LHS, RHS, Opc, ResultTy, VK, OK, false,
13053     return new (Context) BinaryOperator(LHS.get(), RHS.get(), Opc, ResultTy, VK,
13065     return convertHalfVecBinOp(*this, LHS, RHS, Opc, ResultTy, VK, OK, true,
13069       LHS.get(), RHS.get(), Opc, ResultTy, VK, OK, CompLHSTy, CompResultTy,