From: Ted Kremenek Date: Fri, 22 Feb 2008 00:42:36 +0000 (+0000) Subject: Bug fix: For transfer function for unary "!", compare the subexpression value X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f7ca6968d541d020c3a51430b16c7b090b24befe;p=clang Bug fix: For transfer function for unary "!", compare the subexpression value against '0' of the same bit-width. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47465 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Analysis/GRExprEngine.cpp b/Analysis/GRExprEngine.cpp index 80de395c58..6635b0b6a6 100644 --- a/Analysis/GRExprEngine.cpp +++ b/Analysis/GRExprEngine.cpp @@ -747,7 +747,8 @@ void GRExprEngine::VisitUnaryOperator(UnaryOperator* U, NodeTy* Pred, St = SetRVal(St, U, Result); } else { - nonlval::ConcreteInt V(ValMgr.getZeroWithPtrWidth()); + Expr* Ex = U->getSubExpr(); + nonlval::ConcreteInt V(ValMgr.getValue(0, Ex->getType())); RVal Result = EvalBinOp(BinaryOperator::EQ, cast(SubV), V); St = SetRVal(St, U, Result); }