Lines Matching refs:LHSExpr
7841 bool Sema::DiagnoseConditionalForNull(const Expr *LHSExpr, const Expr *RHSExpr, in DiagnoseConditionalForNull() argument
7843 const Expr *NullExpr = LHSExpr; in DiagnoseConditionalForNull()
7851 NonPointerExpr = LHSExpr; in DiagnoseConditionalForNull()
8618 Expr *Condition, const Expr *LHSExpr, in DiagnoseConditionalPrecedence() argument
8705 Expr *CondExpr, Expr *LHSExpr, in ActOnConditionalOp() argument
8712 ExprResult LHSResult = CorrectDelayedTyposInExpr(LHSExpr); in ActOnConditionalOp()
8718 if (LHSExpr) { in ActOnConditionalOp()
8727 LHSExpr = LHSResult.get(); in ActOnConditionalOp()
8735 if (!LHSExpr) { in ActOnConditionalOp()
8775 LHSExpr = CondExpr = opaqueValue; in ActOnConditionalOp()
8778 QualType LHSTy = LHSExpr->getType(), RHSTy = RHSExpr->getType(); in ActOnConditionalOp()
8781 ExprResult Cond = CondExpr, LHS = LHSExpr, RHS = RHSExpr; in ActOnConditionalOp()
10565 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseArithmeticOnTwoVoidPointers() argument
10569 << 1 /* two pointers */ << LHSExpr->getSourceRange() in diagnoseArithmeticOnTwoVoidPointers()
10701 Expr *LHSExpr, Expr *RHSExpr) { in checkArithmeticBinOpPointerOperands() argument
10702 bool isLHSPointer = LHSExpr->getType()->isAnyPointerType(); in checkArithmeticBinOpPointerOperands()
10707 if (isLHSPointer) LHSPointeeTy = LHSExpr->getType()->getPointeeType(); in checkArithmeticBinOpPointerOperands()
10715 << LHSExpr->getType() << RHSExpr->getType() << 1 /*arithmetic op*/ in checkArithmeticBinOpPointerOperands()
10716 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange(); in checkArithmeticBinOpPointerOperands()
10725 if (!isRHSVoidPtr) diagnoseArithmeticOnVoidPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
10727 else diagnoseArithmeticOnTwoVoidPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
10735 if (!isRHSFuncPtr) diagnoseArithmeticOnFunctionPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
10738 else diagnoseArithmeticOnTwoFunctionPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
10743 if (isLHSPointer && checkArithmeticIncompletePointerType(S, Loc, LHSExpr)) in checkArithmeticBinOpPointerOperands()
10754 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusInt() argument
10755 StringLiteral* StrExpr = dyn_cast<StringLiteral>(LHSExpr->IgnoreImpCasts()); in diagnoseStringPlusInt()
10759 IndexExpr = LHSExpr; in diagnoseStringPlusInt()
10767 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusInt()
10775 << FixItHint::CreateInsertion(LHSExpr->getBeginLoc(), "&") in diagnoseStringPlusInt()
10784 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusChar() argument
10785 const Expr *StringRefExpr = LHSExpr; in diagnoseStringPlusChar()
10790 CharExpr = dyn_cast<CharacterLiteral>(LHSExpr->IgnoreImpCasts()); in diagnoseStringPlusChar()
10808 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusChar()
10825 << FixItHint::CreateInsertion(LHSExpr->getBeginLoc(), "&") in diagnoseStringPlusChar()
10835 Expr *LHSExpr, Expr *RHSExpr) { in diagnosePointerIncompatibility() argument
10836 assert(LHSExpr->getType()->isAnyPointerType()); in diagnosePointerIncompatibility()
10839 << LHSExpr->getType() << RHSExpr->getType() << LHSExpr->getSourceRange() in diagnosePointerIncompatibility()
13494 static void CheckIdentityFieldAssignment(Expr *LHSExpr, Expr *RHSExpr, in CheckIdentityFieldAssignment() argument
13503 if (LHSExpr->getExprLoc().isMacroID() || RHSExpr->getExprLoc().isMacroID()) in CheckIdentityFieldAssignment()
13507 MemberExpr *ML = dyn_cast<MemberExpr>(LHSExpr); in CheckIdentityFieldAssignment()
13528 ObjCIvarRefExpr *OL = dyn_cast<ObjCIvarRefExpr>(LHSExpr); in CheckIdentityFieldAssignment()
13539 QualType Sema::CheckAssignmentOperands(Expr *LHSExpr, ExprResult &RHS, in CheckAssignmentOperands() argument
13543 assert(!LHSExpr->hasPlaceholderType(BuiltinType::PseudoObject)); in CheckAssignmentOperands()
13546 if (CheckForModifiableLvalue(LHSExpr, Loc, *this)) in CheckAssignmentOperands()
13549 QualType LHSType = LHSExpr->getType(); in CheckAssignmentOperands()
13573 CheckIdentityFieldAssignment(LHSExpr, RHSCheck, Loc, *this); in CheckAssignmentOperands()
13617 const Expr *InnerLHS = LHSExpr->IgnoreParenCasts(); in CheckAssignmentOperands()
13620 ObjC().checkRetainCycles(LHSExpr, RHS.get()); in CheckAssignmentOperands()
13639 checkUnsafeExprAssigns(Loc, LHSExpr, RHS.get()); in CheckAssignmentOperands()
13651 CheckForNullPointerDereference(*this, LHSExpr); in CheckAssignmentOperands()
13653 AssignedEntity AE{LHSExpr}; in CheckAssignmentOperands()
13662 ExprEvalContexts.back().VolatileAssignmentLHSs.push_back(LHSExpr); in CheckAssignmentOperands()
14411 static void DiagnoseSelfAssignment(Sema &S, Expr *LHSExpr, Expr *RHSExpr, in DiagnoseSelfAssignment() argument
14419 LHSExpr = LHSExpr->IgnoreParenImpCasts(); in DiagnoseSelfAssignment()
14421 const DeclRefExpr *LHSDeclRef = dyn_cast<DeclRefExpr>(LHSExpr); in DiagnoseSelfAssignment()
14441 << LHSDeclRef->getType() << LHSExpr->getSourceRange() in DiagnoseSelfAssignment()
14542 CorrectDelayedTyposInBinOp(Sema &S, BinaryOperatorKind Opc, Expr *LHSExpr, in CorrectDelayedTyposInBinOp() argument
14544 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CorrectDelayedTyposInBinOp()
14591 Expr *LHSExpr, Expr *RHSExpr) { in CreateBuiltinBinOp() argument
14602 InitializedEntity::InitializeTemporary(LHSExpr->getType()); in CreateBuiltinBinOp()
14610 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CreateBuiltinBinOp()
14619 std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr); in CreateBuiltinBinOp()
14624 QualType LHSTy = LHSExpr->getType(); in CreateBuiltinBinOp()
14629 SourceRange SR(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in CreateBuiltinBinOp()
14648 checkTypeSupport(LHSExpr->getType(), OpLoc, /*ValueDecl*/ nullptr); in CreateBuiltinBinOp()
14721 if (const auto *BI = dyn_cast<BinaryOperator>(LHSExpr); in CreateBuiltinBinOp()
14880 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBitwisePrecedence() argument
14882 BinaryOperator *LHSBO = dyn_cast<BinaryOperator>(LHSExpr); in DiagnoseBitwisePrecedence()
14899 ? SourceRange(LHSExpr->getBeginLoc(), OpLoc) in DiagnoseBitwisePrecedence()
14905 : SourceRange(LHSExpr->getBeginLoc(), RHSBO->getLHS()->getEndLoc()); in DiagnoseBitwisePrecedence()
14911 (isLeftComp ? LHSExpr : RHSExpr)->getSourceRange()); in DiagnoseBitwisePrecedence()
14935 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrLHS() argument
14936 if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(LHSExpr)) { in DiagnoseLogicalAndInLogicalOrLHS()
14956 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrRHS() argument
15000 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseShiftCompare() argument
15001 CXXOperatorCallExpr *OCE = dyn_cast<CXXOperatorCallExpr>(LHSExpr); in DiagnoseShiftCompare()
15014 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange() in DiagnoseShiftCompare()
15028 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBinOpPrecedence() argument
15032 DiagnoseBitwisePrecedence(Self, Opc, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15037 DiagnoseBitwiseOpInBitwiseOp(Self, Opc, OpLoc, LHSExpr); in DiagnoseBinOpPrecedence()
15044 DiagnoseLogicalAndInLogicalOrLHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15045 DiagnoseLogicalAndInLogicalOrRHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15048 if ((Opc == BO_Shl && LHSExpr->getType()->isIntegralType(Self.getASTContext())) in DiagnoseBinOpPrecedence()
15051 DiagnoseAdditionInShift(Self, OpLoc, LHSExpr, Shift); in DiagnoseBinOpPrecedence()
15058 DiagnoseShiftCompare(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15063 Expr *LHSExpr, Expr *RHSExpr) { in ActOnBinOp() argument
15065 assert(LHSExpr && "ActOnBinOp(): missing left expression"); in ActOnBinOp()
15069 DiagnoseBinOpPrecedence(*this, Opc, TokLoc, LHSExpr, RHSExpr); in ActOnBinOp()
15071 return BuildBinOp(S, TokLoc, Opc, LHSExpr, RHSExpr); in ActOnBinOp()
15126 Expr *LHSExpr, Expr *RHSExpr) { in BuildBinOp() argument
15128 std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15131 LHSExpr = LHS.get(); in BuildBinOp()
15141 if (const BuiltinType *pty = LHSExpr->getType()->getAsPlaceholderType()) { in BuildBinOp()
15145 return PseudoObject().checkAssignment(S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15160 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15172 auto *OE = dyn_cast<OverloadExpr>(LHSExpr); in BuildBinOp()
15185 ExprResult LHS = CheckPlaceholderExpr(LHSExpr); in BuildBinOp()
15187 LHSExpr = LHS.get(); in BuildBinOp()
15196 (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent() || in BuildBinOp()
15197 LHSExpr->getType()->isOverloadableType())) in BuildBinOp()
15198 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15200 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15205 LHSExpr->getType()->isOverloadableType()) in BuildBinOp()
15206 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15216 if (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent() || in BuildBinOp()
15217 LHSExpr->getType()->isOverloadableType() || in BuildBinOp()
15219 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15223 (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent())) { in BuildBinOp()
15225 assert((LHSExpr->containsErrors() || RHSExpr->containsErrors()) && in BuildBinOp()
15232 Context, LHSExpr, RHSExpr, Opc, in BuildBinOp()
15233 LHSExpr->getType().getUnqualifiedType(), VK_PRValue, OK_Ordinary, in BuildBinOp()
15238 ResultType = LHSExpr->getType().getUnqualifiedType(); in BuildBinOp()
15258 return BinaryOperator::Create(Context, LHSExpr, RHSExpr, Opc, ResultType, in BuildBinOp()
15264 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15896 Expr *LHSExpr, Expr *RHSExpr, in ActOnChooseExpr() argument
15898 assert((CondExpr && LHSExpr && RHSExpr) && "Missing type argument(s)"); in ActOnChooseExpr()
15917 Expr *ActiveExpr = CondIsTrue ? LHSExpr : RHSExpr; in ActOnChooseExpr()
15924 return new (Context) ChooseExpr(BuiltinLoc, CondExpr, LHSExpr, RHSExpr, in ActOnChooseExpr()