The evaluation of dereference and address-of is identical.

llvm-svn: 122146
This commit is contained in:
Zhongxing Xu 2010-12-18 05:16:43 +00:00
parent 2140ff508f
commit 1b47773e1f
1 changed files with 1 additions and 14 deletions

View File

@ -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: {