summaryrefslogtreecommitdiffstats
path: root/clang/lib/Checker/GRExprEngine.cpp
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2010-12-18 05:16:43 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2010-12-18 05:16:43 +0000
commit1b47773e1fb6189c48e083a110274912218e8bcf (patch)
tree69157483e5686151ee6fdf7eb54efc5f872f4ce5 /clang/lib/Checker/GRExprEngine.cpp
parent2140ff508f8ec057df91da331ed78733f8871e0b (diff)
downloadbcm5719-llvm-1b47773e1fb6189c48e083a110274912218e8bcf.tar.gz
bcm5719-llvm-1b47773e1fb6189c48e083a110274912218e8bcf.zip
The evaluation of dereference and address-of is identical.
llvm-svn: 122146
Diffstat (limited to 'clang/lib/Checker/GRExprEngine.cpp')
-rw-r--r--clang/lib/Checker/GRExprEngine.cpp15
1 files changed, 1 insertions, 14 deletions
diff --git a/clang/lib/Checker/GRExprEngine.cpp b/clang/lib/Checker/GRExprEngine.cpp
index 6a383e2e428..2977835f826 100644
--- a/clang/lib/Checker/GRExprEngine.cpp
+++ b/clang/lib/Checker/GRExprEngine.cpp
@@ -2804,6 +2804,7 @@ void GRExprEngine::VisitUnaryOperator(const UnaryOperator* U,
assert(!U->isLValue());
// FALL-THROUGH.
case UO_Deref:
+ case UO_AddrOf:
case UO_Extension: {
// Unary "+" is a no-op, similar to a parentheses. We still have places
@@ -2823,20 +2824,6 @@ void GRExprEngine::VisitUnaryOperator(const UnaryOperator* U,
return;
}
- case UO_AddrOf: {
- assert(!U->isLValue());
- const Expr* Ex = U->getSubExpr()->IgnoreParens();
- ExplodedNodeSet Tmp;
- Visit(Ex, Pred, Tmp);
- for (ExplodedNodeSet::iterator I=Tmp.begin(), E=Tmp.end(); I!=E; ++I) {
- const GRState* state = GetState(*I);
- SVal V = state->getSVal(Ex);
- state = state->BindExpr(U, V);
- MakeNode(Dst, U, *I, state);
- }
- return;
- }
-
case UO_LNot:
case UO_Minus:
case UO_Not: {
OpenPOWER on IntegriCloud