forked from OSchip/llvm-project
The evaluation of dereference and address-of is identical.
llvm-svn: 122146
This commit is contained in:
parent
2140ff508f
commit
1b47773e1f
|
@ -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: {
|
||||
|
|
Loading…
Reference in New Issue