Lines Matching refs:LHSExpr

8111 bool Sema::DiagnoseConditionalForNull(Expr *LHSExpr, Expr *RHSExpr,  in DiagnoseConditionalForNull()  argument
8113 Expr *NullExpr = LHSExpr; in DiagnoseConditionalForNull()
8121 NonPointerExpr = LHSExpr; in DiagnoseConditionalForNull()
8171 Expr *LHSExpr = LHS.get(); in checkConditionalVoidType() local
8174 if (!LHSExpr->getType()->isVoidType()) in checkConditionalVoidType()
8178 S.Diag(LHSExpr->getBeginLoc(), diag::ext_typecheck_cond_one_void) in checkConditionalVoidType()
8179 << LHSExpr->getSourceRange(); in checkConditionalVoidType()
9025 Expr *LHSExpr, in DiagnoseConditionalPrecedence() argument
9114 Expr *CondExpr, Expr *LHSExpr, in ActOnConditionalOp() argument
9121 ExprResult LHSResult = CorrectDelayedTyposInExpr(LHSExpr); in ActOnConditionalOp()
9127 if (LHSExpr) { in ActOnConditionalOp()
9136 LHSExpr = LHSResult.get(); in ActOnConditionalOp()
9144 if (!LHSExpr) { in ActOnConditionalOp()
9184 LHSExpr = CondExpr = opaqueValue; in ActOnConditionalOp()
9187 QualType LHSTy = LHSExpr->getType(), RHSTy = RHSExpr->getType(); in ActOnConditionalOp()
9190 ExprResult Cond = CondExpr, LHS = LHSExpr, RHS = RHSExpr; in ActOnConditionalOp()
10868 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseArithmeticOnTwoVoidPointers() argument
10872 << 1 /* two pointers */ << LHSExpr->getSourceRange() in diagnoseArithmeticOnTwoVoidPointers()
11004 Expr *LHSExpr, Expr *RHSExpr) { in checkArithmeticBinOpPointerOperands() argument
11005 bool isLHSPointer = LHSExpr->getType()->isAnyPointerType(); in checkArithmeticBinOpPointerOperands()
11010 if (isLHSPointer) LHSPointeeTy = LHSExpr->getType()->getPointeeType(); in checkArithmeticBinOpPointerOperands()
11018 << LHSExpr->getType() << RHSExpr->getType() << 1 /*arithmetic op*/ in checkArithmeticBinOpPointerOperands()
11019 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange(); in checkArithmeticBinOpPointerOperands()
11028 if (!isRHSVoidPtr) diagnoseArithmeticOnVoidPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
11030 else diagnoseArithmeticOnTwoVoidPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
11038 if (!isRHSFuncPtr) diagnoseArithmeticOnFunctionPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
11041 else diagnoseArithmeticOnTwoFunctionPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
11046 if (isLHSPointer && checkArithmeticIncompletePointerType(S, Loc, LHSExpr)) in checkArithmeticBinOpPointerOperands()
11057 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusInt() argument
11058 StringLiteral* StrExpr = dyn_cast<StringLiteral>(LHSExpr->IgnoreImpCasts()); in diagnoseStringPlusInt()
11062 IndexExpr = LHSExpr; in diagnoseStringPlusInt()
11070 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusInt()
11078 << FixItHint::CreateInsertion(LHSExpr->getBeginLoc(), "&") in diagnoseStringPlusInt()
11087 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusChar() argument
11088 const Expr *StringRefExpr = LHSExpr; in diagnoseStringPlusChar()
11093 CharExpr = dyn_cast<CharacterLiteral>(LHSExpr->IgnoreImpCasts()); in diagnoseStringPlusChar()
11111 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusChar()
11128 << FixItHint::CreateInsertion(LHSExpr->getBeginLoc(), "&") in diagnoseStringPlusChar()
11138 Expr *LHSExpr, Expr *RHSExpr) { in diagnosePointerIncompatibility() argument
11139 assert(LHSExpr->getType()->isAnyPointerType()); in diagnosePointerIncompatibility()
11142 << LHSExpr->getType() << RHSExpr->getType() << LHSExpr->getSourceRange() in diagnosePointerIncompatibility()
13780 static void CheckIdentityFieldAssignment(Expr *LHSExpr, Expr *RHSExpr, in CheckIdentityFieldAssignment() argument
13789 if (LHSExpr->getExprLoc().isMacroID() || RHSExpr->getExprLoc().isMacroID()) in CheckIdentityFieldAssignment()
13793 MemberExpr *ML = dyn_cast<MemberExpr>(LHSExpr); in CheckIdentityFieldAssignment()
13814 ObjCIvarRefExpr *OL = dyn_cast<ObjCIvarRefExpr>(LHSExpr); in CheckIdentityFieldAssignment()
13825 QualType Sema::CheckAssignmentOperands(Expr *LHSExpr, ExprResult &RHS, in CheckAssignmentOperands() argument
13829 assert(!LHSExpr->hasPlaceholderType(BuiltinType::PseudoObject)); in CheckAssignmentOperands()
13832 if (CheckForModifiableLvalue(LHSExpr, Loc, *this)) in CheckAssignmentOperands()
13835 QualType LHSType = LHSExpr->getType(); in CheckAssignmentOperands()
13853 CheckIdentityFieldAssignment(LHSExpr, RHSCheck, Loc, *this); in CheckAssignmentOperands()
13897 const Expr *InnerLHS = LHSExpr->IgnoreParenCasts(); in CheckAssignmentOperands()
13900 checkRetainCycles(LHSExpr, RHS.get()); in CheckAssignmentOperands()
13919 checkUnsafeExprAssigns(Loc, LHSExpr, RHS.get()); in CheckAssignmentOperands()
13931 CheckForNullPointerDereference(*this, LHSExpr); in CheckAssignmentOperands()
13939 ExprEvalContexts.back().VolatileAssignmentLHSs.push_back(LHSExpr); in CheckAssignmentOperands()
14646 static void DiagnoseSelfAssignment(Sema &S, Expr *LHSExpr, Expr *RHSExpr, in DiagnoseSelfAssignment() argument
14654 LHSExpr = LHSExpr->IgnoreParenImpCasts(); in DiagnoseSelfAssignment()
14656 const DeclRefExpr *LHSDeclRef = dyn_cast<DeclRefExpr>(LHSExpr); in DiagnoseSelfAssignment()
14676 << LHSDeclRef->getType() << LHSExpr->getSourceRange() in DiagnoseSelfAssignment()
14777 CorrectDelayedTyposInBinOp(Sema &S, BinaryOperatorKind Opc, Expr *LHSExpr, in CorrectDelayedTyposInBinOp() argument
14779 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CorrectDelayedTyposInBinOp()
14829 Expr *LHSExpr, Expr *RHSExpr) { in CreateBuiltinBinOp() argument
14840 InitializedEntity::InitializeTemporary(LHSExpr->getType()); in CreateBuiltinBinOp()
14848 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CreateBuiltinBinOp()
14857 std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr); in CreateBuiltinBinOp()
14862 QualType LHSTy = LHSExpr->getType(); in CreateBuiltinBinOp()
14867 SourceRange SR(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in CreateBuiltinBinOp()
14886 checkTypeSupport(LHSExpr->getType(), OpLoc, /*ValueDecl*/ nullptr); in CreateBuiltinBinOp()
15113 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBitwisePrecedence() argument
15115 BinaryOperator *LHSBO = dyn_cast<BinaryOperator>(LHSExpr); in DiagnoseBitwisePrecedence()
15132 ? SourceRange(LHSExpr->getBeginLoc(), OpLoc) in DiagnoseBitwisePrecedence()
15138 : SourceRange(LHSExpr->getBeginLoc(), RHSBO->getLHS()->getEndLoc()); in DiagnoseBitwisePrecedence()
15144 (isLeftComp ? LHSExpr : RHSExpr)->getSourceRange()); in DiagnoseBitwisePrecedence()
15184 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrLHS() argument
15185 if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(LHSExpr)) { in DiagnoseLogicalAndInLogicalOrLHS()
15206 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrRHS() argument
15210 if (EvaluatesAsFalse(S, LHSExpr)) in DiagnoseLogicalAndInLogicalOrRHS()
15252 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseShiftCompare() argument
15253 CXXOperatorCallExpr *OCE = dyn_cast<CXXOperatorCallExpr>(LHSExpr); in DiagnoseShiftCompare()
15266 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange() in DiagnoseShiftCompare()
15280 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBinOpPrecedence() argument
15284 DiagnoseBitwisePrecedence(Self, Opc, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15289 DiagnoseBitwiseOpInBitwiseOp(Self, Opc, OpLoc, LHSExpr); in DiagnoseBinOpPrecedence()
15296 DiagnoseLogicalAndInLogicalOrLHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15297 DiagnoseLogicalAndInLogicalOrRHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15300 if ((Opc == BO_Shl && LHSExpr->getType()->isIntegralType(Self.getASTContext())) in DiagnoseBinOpPrecedence()
15303 DiagnoseAdditionInShift(Self, OpLoc, LHSExpr, Shift); in DiagnoseBinOpPrecedence()
15310 DiagnoseShiftCompare(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
15316 Expr *LHSExpr, Expr *RHSExpr) { in ActOnBinOp() argument
15318 assert(LHSExpr && "ActOnBinOp(): missing left expression"); in ActOnBinOp()
15322 DiagnoseBinOpPrecedence(*this, Opc, TokLoc, LHSExpr, RHSExpr); in ActOnBinOp()
15324 return BuildBinOp(S, TokLoc, Opc, LHSExpr, RHSExpr); in ActOnBinOp()
15370 Expr *LHSExpr, Expr *RHSExpr) { in BuildBinOp() argument
15372 std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15375 LHSExpr = LHS.get(); in BuildBinOp()
15385 if (const BuiltinType *pty = LHSExpr->getType()->getAsPlaceholderType()) { in BuildBinOp()
15389 return checkPseudoObjectAssignment(S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15404 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15416 auto *OE = dyn_cast<OverloadExpr>(LHSExpr); in BuildBinOp()
15429 ExprResult LHS = CheckPlaceholderExpr(LHSExpr); in BuildBinOp()
15431 LHSExpr = LHS.get(); in BuildBinOp()
15440 (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent() || in BuildBinOp()
15441 LHSExpr->getType()->isOverloadableType())) in BuildBinOp()
15442 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15444 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15449 LHSExpr->getType()->isOverloadableType()) in BuildBinOp()
15450 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15460 if (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent()) in BuildBinOp()
15461 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15465 if (LHSExpr->getType()->isOverloadableType() || in BuildBinOp()
15467 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
15471 (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent())) { in BuildBinOp()
15473 assert((LHSExpr->containsErrors() || RHSExpr->containsErrors()) && in BuildBinOp()
15480 Context, LHSExpr, RHSExpr, Opc, in BuildBinOp()
15481 LHSExpr->getType().getUnqualifiedType(), VK_PRValue, OK_Ordinary, in BuildBinOp()
15486 ResultType = LHSExpr->getType().getUnqualifiedType(); in BuildBinOp()
15506 return BinaryOperator::Create(Context, LHSExpr, RHSExpr, Opc, ResultType, in BuildBinOp()
15512 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
16125 Expr *LHSExpr, Expr *RHSExpr, in ActOnChooseExpr() argument
16127 assert((CondExpr && LHSExpr && RHSExpr) && "Missing type argument(s)"); in ActOnChooseExpr()
16146 Expr *ActiveExpr = CondIsTrue ? LHSExpr : RHSExpr; in ActOnChooseExpr()
16153 return new (Context) ChooseExpr(BuiltinLoc, CondExpr, LHSExpr, RHSExpr, in ActOnChooseExpr()