Lines Matching refs:RHSExpr
6524 bool Sema::DiagnoseConditionalForNull(Expr *LHSExpr, Expr *RHSExpr, in DiagnoseConditionalForNull() argument
6527 Expr *NonPointerExpr = RHSExpr; in DiagnoseConditionalForNull()
6533 NullExpr = RHSExpr; in DiagnoseConditionalForNull()
6585 Expr *RHSExpr = RHS.get(); in checkConditionalVoidType() local
6588 S.Diag(RHSExpr->getBeginLoc(), diag::ext_typecheck_cond_one_void) in checkConditionalVoidType()
6589 << RHSExpr->getSourceRange(); in checkConditionalVoidType()
6590 if (!RHSExpr->getType()->isVoidType()) in checkConditionalVoidType()
7393 Expr *RHSExpr) { in DiagnoseConditionalPrecedence() argument
7417 SourceRange(CondRHS->getBeginLoc(), RHSExpr->getEndLoc())); in DiagnoseConditionalPrecedence()
7474 Expr *RHSExpr) { in ActOnConditionalOp() argument
7481 ExprResult RHSResult = CorrectDelayedTyposInExpr(RHSExpr); in ActOnConditionalOp()
7496 RHSExpr = RHSResult.get(); in ActOnConditionalOp()
7517 && commonExpr->getValueKind() == RHSExpr->getValueKind() in ActOnConditionalOp()
7520 && RHSExpr->isOrdinaryOrBitFieldObject() in ActOnConditionalOp()
7521 && Context.hasSameType(commonExpr->getType(), RHSExpr->getType()))) { in ActOnConditionalOp()
7546 QualType LHSTy = LHSExpr->getType(), RHSTy = RHSExpr->getType(); in ActOnConditionalOp()
7549 ExprResult Cond = CondExpr, LHS = LHSExpr, RHS = RHSExpr; in ActOnConditionalOp()
7795 OpaqueValueExpr RHSExpr(Loc, RHSType, VK_RValue); in CheckAssignmentConstraints() local
7796 ExprResult RHSPtr = &RHSExpr; in CheckAssignmentConstraints()
8785 ExprResult *RHSExpr = &RHS; in CheckVectorOperands() local
8786 *RHSExpr = ImpCastExprToType(RHSExpr->get(), LHSType, CK_BitCast); in CheckVectorOperands()
8966 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseArithmeticOnTwoVoidPointers() argument
8971 << RHSExpr->getSourceRange(); in diagnoseArithmeticOnTwoVoidPointers()
9083 Expr *LHSExpr, Expr *RHSExpr) { in checkArithmeticBinOpPointerOperands() argument
9085 bool isRHSPointer = RHSExpr->getType()->isAnyPointerType(); in checkArithmeticBinOpPointerOperands()
9090 if (isRHSPointer) RHSPointeeTy = RHSExpr->getType()->getPointeeType(); in checkArithmeticBinOpPointerOperands()
9095 const PointerType *rhsPtr = RHSExpr->getType()->getAs<PointerType>(); in checkArithmeticBinOpPointerOperands()
9099 << LHSExpr->getType() << RHSExpr->getType() << 1 /*arithmetic op*/ in checkArithmeticBinOpPointerOperands()
9100 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange(); in checkArithmeticBinOpPointerOperands()
9110 else if (!isLHSVoidPtr) diagnoseArithmeticOnVoidPointer(S, Loc, RHSExpr); in checkArithmeticBinOpPointerOperands()
9111 else diagnoseArithmeticOnTwoVoidPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
9121 RHSExpr); in checkArithmeticBinOpPointerOperands()
9122 else diagnoseArithmeticOnTwoFunctionPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
9129 if (isRHSPointer && checkArithmeticIncompletePointerType(S, Loc, RHSExpr)) in checkArithmeticBinOpPointerOperands()
9138 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusInt() argument
9140 Expr* IndexExpr = RHSExpr; in diagnoseStringPlusInt()
9142 StrExpr = dyn_cast<StringLiteral>(RHSExpr->IgnoreImpCasts()); in diagnoseStringPlusInt()
9151 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusInt()
9156 if (IndexExpr == RHSExpr) { in diagnoseStringPlusInt()
9157 SourceLocation EndLoc = Self.getLocForEndOfToken(RHSExpr->getEndLoc()); in diagnoseStringPlusInt()
9168 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusChar() argument
9171 dyn_cast<CharacterLiteral>(RHSExpr->IgnoreImpCasts()); in diagnoseStringPlusChar()
9175 StringRefExpr = RHSExpr; in diagnoseStringPlusChar()
9192 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusChar()
9206 if (isa<CharacterLiteral>(RHSExpr->IgnoreImpCasts())) { in diagnoseStringPlusChar()
9207 SourceLocation EndLoc = Self.getLocForEndOfToken(RHSExpr->getEndLoc()); in diagnoseStringPlusChar()
9219 Expr *LHSExpr, Expr *RHSExpr) { in diagnosePointerIncompatibility() argument
9221 assert(RHSExpr->getType()->isAnyPointerType()); in diagnosePointerIncompatibility()
9223 << LHSExpr->getType() << RHSExpr->getType() << LHSExpr->getSourceRange() in diagnosePointerIncompatibility()
9224 << RHSExpr->getSourceRange(); in diagnosePointerIncompatibility()
11310 static void CheckIdentityFieldAssignment(Expr *LHSExpr, Expr *RHSExpr, in CheckIdentityFieldAssignment() argument
11319 if (LHSExpr->getExprLoc().isMacroID() || RHSExpr->getExprLoc().isMacroID()) in CheckIdentityFieldAssignment()
11324 MemberExpr *MR = dyn_cast<MemberExpr>(RHSExpr); in CheckIdentityFieldAssignment()
11345 ObjCIvarRefExpr *OR = dyn_cast<ObjCIvarRefExpr>(RHSExpr); in CheckIdentityFieldAssignment()
12103 static void DiagnoseSelfAssignment(Sema &S, Expr *LHSExpr, Expr *RHSExpr, in DiagnoseSelfAssignment() argument
12112 RHSExpr = RHSExpr->IgnoreParenImpCasts(); in DiagnoseSelfAssignment()
12114 const DeclRefExpr *RHSDeclRef = dyn_cast<DeclRefExpr>(RHSExpr); in DiagnoseSelfAssignment()
12134 << RHSExpr->getSourceRange(); in DiagnoseSelfAssignment()
12229 Expr *RHSExpr) { in CorrectDelayedTyposInBinOp() argument
12230 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CorrectDelayedTyposInBinOp()
12261 Expr *LHSExpr, Expr *RHSExpr) { in CreateBuiltinBinOp() argument
12262 if (getLangOpts().CPlusPlus11 && isa<InitListExpr>(RHSExpr)) { in CreateBuiltinBinOp()
12270 RHSExpr->getBeginLoc(), RHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in CreateBuiltinBinOp()
12273 InitializationSequence InitSeq(*this, Entity, Kind, RHSExpr); in CreateBuiltinBinOp()
12274 ExprResult Init = InitSeq.Perform(*this, Entity, Kind, RHSExpr); in CreateBuiltinBinOp()
12277 RHSExpr = Init.get(); in CreateBuiltinBinOp()
12280 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CreateBuiltinBinOp()
12289 std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr); in CreateBuiltinBinOp()
12295 QualType RHSTy = RHSExpr->getType(); in CreateBuiltinBinOp()
12299 SourceRange SR(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in CreateBuiltinBinOp()
12507 Expr *RHSExpr) { in DiagnoseBitwisePrecedence() argument
12509 BinaryOperator *RHSBO = dyn_cast<BinaryOperator>(RHSExpr); in DiagnoseBitwisePrecedence()
12526 : SourceRange(OpLoc, RHSExpr->getEndLoc()); in DiagnoseBitwisePrecedence()
12530 ? SourceRange(LHSBO->getRHS()->getBeginLoc(), RHSExpr->getEndLoc()) in DiagnoseBitwisePrecedence()
12537 (isLeftComp ? LHSExpr : RHSExpr)->getSourceRange()); in DiagnoseBitwisePrecedence()
12577 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrLHS() argument
12581 if (EvaluatesAsFalse(S, RHSExpr)) in DiagnoseLogicalAndInLogicalOrLHS()
12599 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrRHS() argument
12600 if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(RHSExpr)) { in DiagnoseLogicalAndInLogicalOrRHS()
12645 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseShiftCompare() argument
12659 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange() in DiagnoseShiftCompare()
12667 SourceRange(OCE->getArg(1)->getBeginLoc(), RHSExpr->getEndLoc())); in DiagnoseShiftCompare()
12674 Expr *RHSExpr){ in DiagnoseBinOpPrecedence() argument
12677 DiagnoseBitwisePrecedence(Self, Opc, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12683 DiagnoseBitwiseOpInBitwiseOp(Self, Opc, OpLoc, RHSExpr); in DiagnoseBinOpPrecedence()
12689 DiagnoseLogicalAndInLogicalOrLHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12690 DiagnoseLogicalAndInLogicalOrRHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12697 DiagnoseAdditionInShift(Self, OpLoc, RHSExpr, Shift); in DiagnoseBinOpPrecedence()
12703 DiagnoseShiftCompare(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12709 Expr *LHSExpr, Expr *RHSExpr) { in ActOnBinOp() argument
12712 assert(RHSExpr && "ActOnBinOp(): missing right expression"); in ActOnBinOp()
12715 DiagnoseBinOpPrecedence(*this, Opc, TokLoc, LHSExpr, RHSExpr); in ActOnBinOp()
12717 return BuildBinOp(S, TokLoc, Opc, LHSExpr, RHSExpr); in ActOnBinOp()
12757 Expr *LHSExpr, Expr *RHSExpr) { in BuildBinOp() argument
12759 std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12763 RHSExpr = RHS.get(); in BuildBinOp()
12776 return checkPseudoObjectAssignment(S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12785 ExprResult resolvedRHS = CheckPlaceholderExpr(RHSExpr); in BuildBinOp()
12787 RHSExpr = resolvedRHS.get(); in BuildBinOp()
12789 if (RHSExpr->isTypeDependent() || in BuildBinOp()
12790 RHSExpr->getType()->isOverloadableType()) in BuildBinOp()
12791 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12822 if (const BuiltinType *pty = RHSExpr->getType()->getAsPlaceholderType()) { in BuildBinOp()
12827 (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent() || in BuildBinOp()
12829 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12831 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12837 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12839 ExprResult resolvedRHS = CheckPlaceholderExpr(RHSExpr); in BuildBinOp()
12841 RHSExpr = resolvedRHS.get(); in BuildBinOp()
12847 if (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent()) in BuildBinOp()
12848 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12853 RHSExpr->getType()->isOverloadableType()) in BuildBinOp()
12854 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12858 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
13480 Expr *LHSExpr, Expr *RHSExpr, in ActOnChooseExpr() argument
13482 assert((CondExpr && LHSExpr && RHSExpr) && "Missing type argument(s)"); in ActOnChooseExpr()
13504 Expr *ActiveExpr = CondIsTrue ? LHSExpr : RHSExpr; in ActOnChooseExpr()
13513 ChooseExpr(BuiltinLoc, CondExpr, LHSExpr, RHSExpr, resType, VK, OK, RPLoc, in ActOnChooseExpr()