Lines Matching refs:LHSExpr
4629 bool Sema::DiagnoseConditionalForNull(Expr *LHSExpr, Expr *RHSExpr, in DiagnoseConditionalForNull() argument
4631 Expr *NullExpr = LHSExpr; in DiagnoseConditionalForNull()
4639 NonPointerExpr = LHSExpr; in DiagnoseConditionalForNull()
4712 Expr *LHSExpr = LHS.get(); in checkConditionalVoidType() local
4715 if (!LHSExpr->getType()->isVoidType()) in checkConditionalVoidType()
4719 S.Diag(LHSExpr->getLocStart(), diag::ext_typecheck_cond_one_void) in checkConditionalVoidType()
4720 << LHSExpr->getSourceRange(); in checkConditionalVoidType()
5245 Expr *LHSExpr, in DiagnoseConditionalPrecedence() argument
5276 Expr *CondExpr, Expr *LHSExpr, in ActOnConditionalOp() argument
5282 if (LHSExpr == 0) { in ActOnConditionalOp()
5305 LHSExpr = CondExpr = opaqueValue; in ActOnConditionalOp()
5310 ExprResult Cond = Owned(CondExpr), LHS = Owned(LHSExpr), RHS = Owned(RHSExpr); in ActOnConditionalOp()
6166 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseArithmeticOnTwoVoidPointers() argument
6170 << 1 /* two pointers */ << LHSExpr->getSourceRange() in diagnoseArithmeticOnTwoVoidPointers()
6261 Expr *LHSExpr, Expr *RHSExpr) { in checkArithmeticBinOpPointerOperands() argument
6262 bool isLHSPointer = LHSExpr->getType()->isAnyPointerType(); in checkArithmeticBinOpPointerOperands()
6267 if (isLHSPointer) LHSPointeeTy = LHSExpr->getType()->getPointeeType(); in checkArithmeticBinOpPointerOperands()
6274 if (!isRHSVoidPtr) diagnoseArithmeticOnVoidPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
6276 else diagnoseArithmeticOnTwoVoidPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
6284 if (!isRHSFuncPtr) diagnoseArithmeticOnFunctionPointer(S, Loc, LHSExpr); in checkArithmeticBinOpPointerOperands()
6287 else diagnoseArithmeticOnTwoFunctionPointers(S, Loc, LHSExpr, RHSExpr); in checkArithmeticBinOpPointerOperands()
6292 if (isLHSPointer && checkArithmeticIncompletePointerType(S, Loc, LHSExpr)) in checkArithmeticBinOpPointerOperands()
6303 Expr *LHSExpr, Expr *RHSExpr) { in diagnoseStringPlusInt() argument
6304 StringLiteral* StrExpr = dyn_cast<StringLiteral>(LHSExpr->IgnoreImpCasts()); in diagnoseStringPlusInt()
6308 IndexExpr = LHSExpr; in diagnoseStringPlusInt()
6325 SourceRange DiagRange(LHSExpr->getLocStart(), RHSExpr->getLocEnd()); in diagnoseStringPlusInt()
6333 << FixItHint::CreateInsertion(LHSExpr->getLocStart(), "&") in diagnoseStringPlusInt()
6342 Expr *LHSExpr, Expr *RHSExpr) { in diagnosePointerIncompatibility() argument
6343 assert(LHSExpr->getType()->isAnyPointerType()); in diagnosePointerIncompatibility()
6346 << LHSExpr->getType() << RHSExpr->getType() << LHSExpr->getSourceRange() in diagnosePointerIncompatibility()
7618 static void CheckIdentityFieldAssignment(Expr *LHSExpr, Expr *RHSExpr, in CheckIdentityFieldAssignment() argument
7622 MemberExpr *ML = dyn_cast<MemberExpr>(LHSExpr); in CheckIdentityFieldAssignment()
7630 ObjCIvarRefExpr *OL = dyn_cast<ObjCIvarRefExpr>(LHSExpr); in CheckIdentityFieldAssignment()
7641 QualType Sema::CheckAssignmentOperands(Expr *LHSExpr, ExprResult &RHS, in CheckAssignmentOperands() argument
7644 assert(!LHSExpr->hasPlaceholderType(BuiltinType::PseudoObject)); in CheckAssignmentOperands()
7647 if (CheckForModifiableLvalue(LHSExpr, Loc, *this)) in CheckAssignmentOperands()
7650 QualType LHSType = LHSExpr->getType(); in CheckAssignmentOperands()
7657 CheckIdentityFieldAssignment(LHSExpr, RHSCheck, Loc, *this); in CheckAssignmentOperands()
7699 checkRetainCycles(LHSExpr, RHS.get()); in CheckAssignmentOperands()
7701 checkUnsafeExprAssigns(Loc, LHSExpr, RHS.get()); in CheckAssignmentOperands()
7712 CheckForNullPointerDereference(*this, LHSExpr); in CheckAssignmentOperands()
8182 static void DiagnoseSelfAssignment(Sema &S, Expr *LHSExpr, Expr *RHSExpr, in DiagnoseSelfAssignment() argument
8188 LHSExpr = LHSExpr->IgnoreParenImpCasts(); in DiagnoseSelfAssignment()
8190 const DeclRefExpr *LHSDeclRef = dyn_cast<DeclRefExpr>(LHSExpr); in DiagnoseSelfAssignment()
8210 << LHSExpr->getSourceRange() << RHSExpr->getSourceRange(); in DiagnoseSelfAssignment()
8218 Expr *LHSExpr, Expr *RHSExpr) { in CreateBuiltinBinOp() argument
8229 InitializedEntity::InitializeTemporary(LHSExpr->getType()); in CreateBuiltinBinOp()
8237 ExprResult LHS = Owned(LHSExpr), RHS = Owned(RHSExpr); in CreateBuiltinBinOp()
8370 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBitwisePrecedence() argument
8375 if (BinOp *BO = dyn_cast<BinOp>(LHSExpr)) in DiagnoseBitwisePrecedence()
8394 SourceRange DiagRange = isLeftComp ? SourceRange(LHSExpr->getLocStart(), in DiagnoseBitwisePrecedence()
8400 SourceRange(cast<BinOp>(LHSExpr)->getRHS()->getLocStart(), in DiagnoseBitwisePrecedence()
8402 : SourceRange(LHSExpr->getLocStart(), in DiagnoseBitwisePrecedence()
8409 (isLeftComp ? LHSExpr : RHSExpr)->getSourceRange()); in DiagnoseBitwisePrecedence()
8459 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrLHS() argument
8460 if (BinaryOperator *Bop = dyn_cast<BinaryOperator>(LHSExpr)) { in DiagnoseLogicalAndInLogicalOrLHS()
8481 Expr *LHSExpr, Expr *RHSExpr) { in DiagnoseLogicalAndInLogicalOrRHS() argument
8485 if (EvaluatesAsFalse(S, LHSExpr)) in DiagnoseLogicalAndInLogicalOrRHS()
8506 SourceLocation OpLoc, Expr *LHSExpr, in DiagnoseBinOpPrecedence() argument
8510 DiagnoseBitwisePrecedence(Self, Opc, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
8514 DiagnoseBitwiseAndInBitwiseOr(Self, OpLoc, LHSExpr); in DiagnoseBinOpPrecedence()
8521 DiagnoseLogicalAndInLogicalOrLHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
8522 DiagnoseLogicalAndInLogicalOrRHS(Self, OpLoc, LHSExpr, RHSExpr); in DiagnoseBinOpPrecedence()
8529 Expr *LHSExpr, Expr *RHSExpr) { in ActOnBinOp() argument
8531 assert((LHSExpr != 0) && "ActOnBinOp(): missing left expression"); in ActOnBinOp()
8535 DiagnoseBinOpPrecedence(*this, Opc, TokLoc, LHSExpr, RHSExpr); in ActOnBinOp()
8537 return BuildBinOp(S, TokLoc, Opc, LHSExpr, RHSExpr); in ActOnBinOp()
8562 Expr *LHSExpr, Expr *RHSExpr) { in BuildBinOp() argument
8570 if (const BuiltinType *pty = LHSExpr->getType()->getAsPlaceholderType()) { in BuildBinOp()
8574 return checkPseudoObjectAssignment(S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8589 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8592 ExprResult LHS = CheckPlaceholderExpr(LHSExpr); in BuildBinOp()
8594 LHSExpr = LHS.take(); in BuildBinOp()
8602 if (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent()) in BuildBinOp()
8603 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8605 if (LHSExpr->getType()->isOverloadableType()) in BuildBinOp()
8606 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8608 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8613 LHSExpr->getType()->isOverloadableType()) in BuildBinOp()
8614 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8624 if (LHSExpr->isTypeDependent() || RHSExpr->isTypeDependent()) in BuildBinOp()
8625 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8629 if (LHSExpr->getType()->isOverloadableType() || in BuildBinOp()
8631 return BuildOverloadedBinOp(*this, S, OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
8635 return CreateBuiltinBinOp(OpLoc, Opc, LHSExpr, RHSExpr); in BuildBinOp()
9188 Expr *LHSExpr, Expr *RHSExpr, in ActOnChooseExpr() argument
9190 assert((CondExpr && LHSExpr && RHSExpr) && "Missing type argument(s)"); in ActOnChooseExpr()
9210 Expr *ActiveExpr = condEval.getZExtValue() ? LHSExpr : RHSExpr; in ActOnChooseExpr()
9218 return Owned(new (Context) ChooseExpr(BuiltinLoc, CondExpr, LHSExpr, RHSExpr, in ActOnChooseExpr()