summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2012-02-14 21:27:02 +0000
committerTed Kremenek <kremenek@apple.com>2012-02-14 21:27:02 +0000
commitc14557fb6a98b1f9ad449e3534d21b40e9c259cd (patch)
tree0d69c07ea1ac3e997ed9828295afcd8ce6310de3 /clang/lib/StaticAnalyzer/Core
parentb5d87d88438717e09aaa3bba955fdd297e91b531 (diff)
downloadbcm5719-llvm-c14557fb6a98b1f9ad449e3534d21b40e9c259cd.tar.gz
bcm5719-llvm-c14557fb6a98b1f9ad449e3534d21b40e9c259cd.zip
Remove ExprEngine recursive visitation of unary UO_Imag operation.
llvm-svn: 150505
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core')
-rw-r--r--clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
index 3d5e1edc5f2..03529b17ded 100644
--- a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
+++ b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
@@ -585,26 +585,18 @@ void ExprEngine::VisitUnaryOperator(const UnaryOperator* U,
break;
}
- case UO_Imag: {
-
+ case UO_Imag: {
const Expr *Ex = U->getSubExpr()->IgnoreParens();
- ExplodedNodeSet Tmp;
- Visit(Ex, Pred, Tmp);
-
- for (ExplodedNodeSet::iterator I=Tmp.begin(), E=Tmp.end(); I!=E; ++I) {
- // FIXME: We don't have complex SValues yet.
- if (Ex->getType()->isAnyComplexType()) {
- // Just report "Unknown."
- continue;
- }
-
- // For all other types, UO_Imag returns 0.
- ProgramStateRef state = (*I)->getState();
- const LocationContext *LCtx = (*I)->getLocationContext();
- SVal X = svalBuilder.makeZeroVal(Ex->getType());
- Bldr.generateNode(U, *I, state->BindExpr(U, LCtx, X));
+ // FIXME: We don't have complex SValues yet.
+ if (Ex->getType()->isAnyComplexType()) {
+ // Just report "Unknown."
+ break;
}
-
+ // For all other types, UO_Imag returns 0.
+ ProgramStateRef state = Pred->getState();
+ const LocationContext *LCtx = Pred->getLocationContext();
+ SVal X = svalBuilder.makeZeroVal(Ex->getType());
+ Bldr.generateNode(U, Pred, state->BindExpr(U, LCtx, X));
break;
}
OpenPOWER on IntegriCloud