Lines Matching refs:LHSExpr

6524 bool Sema::DiagnoseConditionalForNull(Expr *LHSExpr, Expr *RHSExpr,  in DiagnoseConditionalForNull()  argument
6526 Expr *NullExpr = LHSExpr; in DiagnoseConditionalForNull()
6534 NonPointerExpr = LHSExpr; in DiagnoseConditionalForNull()
6584 Expr *LHSExpr = LHS.get(); in checkConditionalVoidType() local
6587 if (!LHSExpr->getType()->isVoidType()) in checkConditionalVoidType()
6591 S.Diag(LHSExpr->getBeginLoc(), diag::ext_typecheck_cond_one_void) in checkConditionalVoidType()
6592 << LHSExpr->getSourceRange(); in checkConditionalVoidType()
7392 Expr *LHSExpr, in DiagnoseConditionalPrecedence() argument
7473 Expr *CondExpr, Expr *LHSExpr, in ActOnConditionalOp() argument
7480 ExprResult LHSResult = CorrectDelayedTyposInExpr(LHSExpr); in ActOnConditionalOp()
7486 if (LHSExpr) { in ActOnConditionalOp()
7495 LHSExpr = LHSResult.get(); in ActOnConditionalOp()
7503 if (!LHSExpr) { in ActOnConditionalOp()
7543 LHSExpr = CondExpr = opaqueValue; in ActOnConditionalOp()
7546 QualType LHSTy = LHSExpr->getType(), RHSTy = RHSExpr->getType(); in ActOnConditionalOp()
7549 ExprResult Cond = CondExpr, LHS = LHSExpr, RHS = RHSExpr; in ActOnConditionalOp()
8966 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseArithmeticOnTwoVoidPointers() argument
8970 << 1 /* two pointers */ << LHSExpr->getSourceRange() in diagnoseArithmeticOnTwoVoidPointers()
9083 Expr *LHSExpr, Expr *RHSExpr) { in checkArithmeticBinOpPointerOperands() argument
9084 bool isLHSPointer = LHSExpr->getType()->isAnyPointerType(); in checkArithmeticBinOpPointerOperands()
9089 if (isLHSPointer) LHSPointeeTy = LHSExpr->getType()->getPointeeType(); in checkArithmeticBinOpPointerOperands()
9094 const PointerType *lhsPtr = LHSExpr->getType()->getAs<PointerType>(); in checkArithmeticBinOpPointerOperands()
9099 << LHSExpr->getType() << RHSExpr->getType() << 1 /*arithmetic op*/ in checkArithmeticBinOpPointerOperands()
9100 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange(); in checkArithmeticBinOpPointerOperands()
9109 if (!isRHSVoidPtr) diagnoseArithmeticOnVoidPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
9111 else diagnoseArithmeticOnTwoVoidPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
9119 if (!isRHSFuncPtr) diagnoseArithmeticOnFunctionPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
9122 else diagnoseArithmeticOnTwoFunctionPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
9127 if (isLHSPointer && checkArithmeticIncompletePointerType(S, Loc, LHSExpr)) in checkArithmeticBinOpPointerOperands()
9138 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusInt() argument
9139 StringLiteral* StrExpr = dyn_cast<StringLiteral>(LHSExpr->IgnoreImpCasts()); in diagnoseStringPlusInt()
9143 IndexExpr = LHSExpr; in diagnoseStringPlusInt()
9151 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusInt()
9159 << FixItHint::CreateInsertion(LHSExpr->getBeginLoc(), "&") in diagnoseStringPlusInt()
9168 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusChar() argument
9169 const Expr *StringRefExpr = LHSExpr; in diagnoseStringPlusChar()
9174 CharExpr = dyn_cast<CharacterLiteral>(LHSExpr->IgnoreImpCasts()); in diagnoseStringPlusChar()
9192 SourceRange DiagRange(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in diagnoseStringPlusChar()
9209 << FixItHint::CreateInsertion(LHSExpr->getBeginLoc(), "&") in diagnoseStringPlusChar()
9219 Expr *LHSExpr, Expr *RHSExpr) { in diagnosePointerIncompatibility() argument
9220 assert(LHSExpr->getType()->isAnyPointerType()); in diagnosePointerIncompatibility()
9223 << LHSExpr->getType() << RHSExpr->getType() << LHSExpr->getSourceRange() in diagnosePointerIncompatibility()
11310 static void CheckIdentityFieldAssignment(Expr *LHSExpr, Expr *RHSExpr, in CheckIdentityFieldAssignment() argument
11319 if (LHSExpr->getExprLoc().isMacroID() || RHSExpr->getExprLoc().isMacroID()) in CheckIdentityFieldAssignment()
11323 MemberExpr *ML = dyn_cast<MemberExpr>(LHSExpr); in CheckIdentityFieldAssignment()
11344 ObjCIvarRefExpr *OL = dyn_cast<ObjCIvarRefExpr>(LHSExpr); in CheckIdentityFieldAssignment()
11355 QualType Sema::CheckAssignmentOperands(Expr *LHSExpr, ExprResult &RHS, in CheckAssignmentOperands() argument
11358 assert(!LHSExpr->hasPlaceholderType(BuiltinType::PseudoObject)); in CheckAssignmentOperands()
11361 if (CheckForModifiableLvalue(LHSExpr, Loc, *this)) in CheckAssignmentOperands()
11364 QualType LHSType = LHSExpr->getType(); in CheckAssignmentOperands()
11381 CheckIdentityFieldAssignment(LHSExpr, RHSCheck, Loc, *this); in CheckAssignmentOperands()
11425 const Expr *InnerLHS = LHSExpr->IgnoreParenCasts(); in CheckAssignmentOperands()
11428 checkRetainCycles(LHSExpr, RHS.get()); in CheckAssignmentOperands()
11447 checkUnsafeExprAssigns(Loc, LHSExpr, RHS.get()); in CheckAssignmentOperands()
11459 CheckForNullPointerDereference(*this, LHSExpr); in CheckAssignmentOperands()
12103 static void DiagnoseSelfAssignment(Sema &S, Expr *LHSExpr, Expr *RHSExpr, in DiagnoseSelfAssignment() argument
12111 LHSExpr = LHSExpr->IgnoreParenImpCasts(); in DiagnoseSelfAssignment()
12113 const DeclRefExpr *LHSDeclRef = dyn_cast<DeclRefExpr>(LHSExpr); in DiagnoseSelfAssignment()
12133 << LHSDeclRef->getType() << LHSExpr->getSourceRange() in DiagnoseSelfAssignment()
12228 CorrectDelayedTyposInBinOp(Sema &S, BinaryOperatorKind Opc, Expr *LHSExpr, in CorrectDelayedTyposInBinOp() argument
12230 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CorrectDelayedTyposInBinOp()
12261 Expr *LHSExpr, Expr *RHSExpr) { in CreateBuiltinBinOp() argument
12272 InitializedEntity::InitializeTemporary(LHSExpr->getType()); in CreateBuiltinBinOp()
12280 ExprResult LHS = LHSExpr, RHS = RHSExpr; in CreateBuiltinBinOp()
12289 std::tie(LHS, RHS) = CorrectDelayedTyposInBinOp(*this, Opc, LHSExpr, RHSExpr); in CreateBuiltinBinOp()
12294 QualType LHSTy = LHSExpr->getType(); in CreateBuiltinBinOp()
12299 SourceRange SR(LHSExpr->getBeginLoc(), RHSExpr->getEndLoc()); in CreateBuiltinBinOp()
12506 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBitwisePrecedence() argument
12508 BinaryOperator *LHSBO = dyn_cast<BinaryOperator>(LHSExpr); in DiagnoseBitwisePrecedence()
12525 ? SourceRange(LHSExpr->getBeginLoc(), OpLoc) in DiagnoseBitwisePrecedence()
12531 : SourceRange(LHSExpr->getBeginLoc(), RHSBO->getLHS()->getEndLoc()); in DiagnoseBitwisePrecedence()
12537 (isLeftComp ? LHSExpr : RHSExpr)->getSourceRange()); in DiagnoseBitwisePrecedence()
12577 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrLHS() argument
12578 if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(LHSExpr)) { in DiagnoseLogicalAndInLogicalOrLHS()
12599 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrRHS() argument
12603 if (EvaluatesAsFalse(S, LHSExpr)) in DiagnoseLogicalAndInLogicalOrRHS()
12645 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseShiftCompare() argument
12646 CXXOperatorCallExpr *OCE = dyn_cast<CXXOperatorCallExpr>(LHSExpr); in DiagnoseShiftCompare()
12659 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange() in DiagnoseShiftCompare()
12673 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBinOpPrecedence() argument
12677 DiagnoseBitwisePrecedence(Self, Opc, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12682 DiagnoseBitwiseOpInBitwiseOp(Self, Opc, OpLoc, LHSExpr); in DiagnoseBinOpPrecedence()
12689 DiagnoseLogicalAndInLogicalOrLHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12690 DiagnoseLogicalAndInLogicalOrRHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12693 if ((Opc == BO_Shl && LHSExpr->getType()->isIntegralType(Self.getASTContext())) in DiagnoseBinOpPrecedence()
12696 DiagnoseAdditionInShift(Self, OpLoc, LHSExpr, Shift); in DiagnoseBinOpPrecedence()
12703 DiagnoseShiftCompare(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
12709 Expr *LHSExpr, Expr *RHSExpr) { in ActOnBinOp() argument
12711 assert(LHSExpr && "ActOnBinOp(): missing left 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()
12762 LHSExpr = LHS.get(); in BuildBinOp()
12772 if (const BuiltinType *pty = LHSExpr->getType()->getAsPlaceholderType()) { in BuildBinOp()
12776 return checkPseudoObjectAssignment(S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12791 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12803 auto *OE = dyn_cast<OverloadExpr>(LHSExpr); in BuildBinOp()
12816 ExprResult LHS = CheckPlaceholderExpr(LHSExpr); in BuildBinOp()
12818 LHSExpr = LHS.get(); in BuildBinOp()
12827 (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent() || in BuildBinOp()
12828 LHSExpr->getType()->isOverloadableType())) in BuildBinOp()
12829 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12831 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12836 LHSExpr->getType()->isOverloadableType()) in BuildBinOp()
12837 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12847 if (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent()) in BuildBinOp()
12848 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
12852 if (LHSExpr->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()