From: Zhongxing Xu Date: Sat, 18 Dec 2010 05:16:43 +0000 (+0000) Subject: The evaluation of dereference and address-of is identical. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c2bac02c1d1204bcf2c5a025ab901d09bc7ae26;p=clang The evaluation of dereference and address-of is identical. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122146 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Checker/GRExprEngine.cpp b/lib/Checker/GRExprEngine.cpp index 6a383e2e42..2977835f82 100644 --- a/lib/Checker/GRExprEngine.cpp +++ b/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: {