Lines Matching defs:RHS

506           // evaluating the RHS: 0 && X -> 0, 1 || X -> 1
510 TryResult RHS = tryEvaluateBool(Bop->getRHS());
511 if (RHS.isKnown()) {
513 return LHS.isTrue() || RHS.isTrue();
515 return LHS.isTrue() && RHS.isTrue();
518 TryResult RHS = tryEvaluateBool(Bop->getRHS());
519 if (RHS.isKnown()) {
521 // is determined by the RHS: X && 0 -> 0, X || 1 -> 1.
522 if (RHS.isTrue() == (Bop->getOpcode() == BO_LOr))
523 return RHS.isTrue();
1217 // Introspect the RHS. If it is a nested logical operation, we recursively
1220 Expr *RHS = B->getRHS()->IgnoreParens();
1224 if (BinaryOperator *B_RHS = dyn_cast<BinaryOperator>(RHS))
1231 // The RHS is not a nested logical operation. Don't push the terminator
1232 // down further, but instead visit RHS and construct the respective
1243 TryResult KnownVal = tryEvaluateBool(RHS);
1249 RHSBlock = addStmt(RHS);
1267 // into the nested branch. The RHS always gets the top-most
1329 // If visiting RHS causes us to finish 'Block', e.g. the RHS is a StmtExpr
1520 // Create the block for the RHS expression.
2649 if (const Expr *RHS = CS->getRHS()) {
2650 // Evaluate the RHS of the case value.
2651 const llvm::APSInt &V2 = RHS->EvaluateKnownConstInt(Ctx);
3115 // those for RHS expression. Even if this will unnecessarily create a block,
3130 // If RHS expression did produce destructors we need to connect created
3135 // For binary operator LHS block is before RHS in list of predecessors
3166 // before RHS expression. For destructors visit them in reverse order.
3172 // For any other binary operator RHS expression is visited before
3227 // Try to add block with destructors for RHS expression;
3236 // If neither LHS nor RHS expression had temporaries to destroy don't create