aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/LiveVariables.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Analysis/LiveVariables.cpp')
-rw-r--r--clang/lib/Analysis/LiveVariables.cpp18
1 files changed, 0 insertions, 18 deletions
diff --git a/clang/lib/Analysis/LiveVariables.cpp b/clang/lib/Analysis/LiveVariables.cpp
index 38db72a..9e5ec557 100644
--- a/clang/lib/Analysis/LiveVariables.cpp
+++ b/clang/lib/Analysis/LiveVariables.cpp
@@ -211,8 +211,6 @@ class TransferFunctions : public StmtVisitor<TransferFunctions> {
LiveVariables::LivenessValues &val;
LiveVariables::Observer *observer;
const CFGBlock *currentBlock;
-
- void markLogicalExprLeaves(const Expr *E);
public:
TransferFunctions(LiveVariablesImpl &im,
LiveVariables::LivenessValues &Val,
@@ -369,23 +367,7 @@ void TransferFunctions::VisitBinaryOperator(BinaryOperator *B) {
if (observer)
observer->observerKill(DR);
}
- } else if (B->isLogicalOp()) {
- // Leaf expressions in the logical operator tree are live until we reach the
- // outermost logical operator. Static analyzer relies on this behaviour.
- markLogicalExprLeaves(B->getLHS()->IgnoreParens());
- markLogicalExprLeaves(B->getRHS()->IgnoreParens());
- }
-}
-
-void TransferFunctions::markLogicalExprLeaves(const Expr *E) {
- const BinaryOperator *B = dyn_cast<BinaryOperator>(E);
- if (!B || !B->isLogicalOp()) {
- val.liveStmts = LV.SSetFact.add(val.liveStmts, E);
- return;
}
-
- markLogicalExprLeaves(B->getLHS()->IgnoreParens());
- markLogicalExprLeaves(B->getRHS()->IgnoreParens());
}
void TransferFunctions::VisitBlockExpr(BlockExpr *BE) {