Lines Matching defs:LHSValue
3092 static bool handleLogicalOpForVector(const APInt &LHSValue,
3095 bool LHS = (LHSValue != 0);
3104 static bool handleLogicalOpForVector(const APFloat &LHSValue,
3107 bool LHS = !LHSValue.isZero();
3117 static bool handleLogicalOpForVector(const APValue &LHSValue,
3121 if (LHSValue.getKind() == APValue::Int)
3122 return handleLogicalOpForVector(LHSValue.getInt(), Opcode,
3124 assert(LHSValue.getKind() == APValue::Float && "Should be no other options");
3125 return handleLogicalOpForVector(LHSValue.getFloat(), Opcode,
3131 handleCompareOpForVectorHelper(const APTy &LHSValue, BinaryOperatorKind Opcode,
3137 Result = (LHSValue == RHSValue);
3140 Result = (LHSValue != RHSValue);
3143 Result = (LHSValue < RHSValue);
3146 Result = (LHSValue > RHSValue);
3149 Result = (LHSValue <= RHSValue);
3152 Result = (LHSValue >= RHSValue);
3164 static bool handleCompareOpForVector(const APValue &LHSValue,
3168 if (LHSValue.getKind() == APValue::Int)
3169 return handleCompareOpForVectorHelper(LHSValue.getInt(), Opcode,
3171 assert(LHSValue.getKind() == APValue::Float && "Should be no other options");
3172 return handleCompareOpForVectorHelper(LHSValue.getFloat(), Opcode,
3179 APValue &LHSValue,
3191 if (!LHSValue.isVector()) {
3192 assert(LHSValue.isLValue() &&
3198 assert(LHSValue.getVectorLength() == NumElements &&
3204 APValue LHSElt = LHSValue.getVectorElt(EltNum);
3242 LHSValue = APValue(ResultElements.data(), ResultElements.size());
11256 APValue LHSValue;
11258 bool LHSOK = Evaluate(LHSValue, Info, LHS);
11264 if (!handleVectorVectorBinOp(Info, E, Op, LHSValue, RHSValue))
11267 return Success(LHSValue, E);
14370 LValue LHSValue, RHSValue;
14372 bool LHSOK = EvaluatePointer(E->getLHS(), LHSValue, Info);
14380 if (!(IsGlobalLValue(LHSValue.getLValueBase()) &&
14382 (LHSValue.AllowConstexprUnknown || RHSValue.AllowConstexprUnknown))
14387 if (!HasSameBase(LHSValue, RHSValue)) {
14389 std::string LHS = LHSValue.toString(Info.Ctx, E->getLHS()->getType());
14405 if ((!LHSValue.Base && !LHSValue.Offset.isZero()) ||
14420 if (ArePotentiallyOverlappingStringLiterals(Info, LHSValue, RHSValue))
14422 if (IsOpaqueConstantCall(LHSValue) || IsOpaqueConstantCall(RHSValue))
14424 !IsOpaqueConstantCall(LHSValue));
14427 if (IsWeakLValue(LHSValue) || IsWeakLValue(RHSValue))
14429 !IsWeakLValue(LHSValue));
14432 if (LHSValue.Base && LHSValue.Offset.isZero() &&
14437 isOnePastTheEndOfCompleteObject(Info.Ctx, LHSValue))
14442 if ((RHSValue.Base && isZeroSized(LHSValue)) ||
14443 (LHSValue.Base && isZeroSized(RHSValue)))
14449 const CharUnits &LHSOffset = LHSValue.getLValueOffset();
14452 SubobjectDesignator &LHSDesignator = LHSValue.getLValueDesignator();
14466 getType(LHSValue.Base), LHSDesignator, RHSDesignator, WasArrayIndex);
14509 if (!LHSValue.Base.isNull() && IsRelational) {
14510 QualType BaseTy = getType(LHSValue.Base);
14530 MemberPtr LHSValue, RHSValue;
14532 bool LHSOK = EvaluateMemberPointer(E->getLHS(), LHSValue, Info);
14541 if (LHSValue.getDecl() && LHSValue.getDecl()->isWeak()) {
14543 << LHSValue.getDecl();
14555 if (!LHSValue.getDecl() || !RHSValue.getDecl()) {
14556 bool Equal = !LHSValue.getDecl() && !RHSValue.getDecl();
14562 if (const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(LHSValue.getDecl()))
14573 bool Equal = LHSValue == RHSValue;
14690 LValue LHSValue, RHSValue;
14692 bool LHSOK = EvaluatePointer(E->getLHS(), LHSValue, Info);
14701 if (!HasSameBase(LHSValue, RHSValue)) {
14703 if (!LHSValue.Offset.isZero() || !RHSValue.Offset.isZero())
14705 const Expr *LHSExpr = LHSValue.Base.dyn_cast<const Expr *>();
14709 std::string LHS = LHSValue.toString(Info.Ctx, E->getLHS()->getType());
14722 if (ArePotentiallyOverlappingStringLiterals(Info, LHSValue, RHSValue))
14735 const CharUnits &LHSOffset = LHSValue.getLValueOffset();
14738 SubobjectDesignator &LHSDesignator = LHSValue.getLValueDesignator();
14746 !AreElementsOfSameArray(getType(LHSValue.Base), LHSDesignator,