From c7ba873dc729aaaad9d65b2264d11dcf7aacb1d4 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 26 Feb 2008 21:04:29 +0000 Subject: [PATCH] Removed hack with toggling the signedness flag of the APSInt stored in an EnumConstantDecl. This was made possible because of a recent fix in the parser: http://llvm.org/viewvc/llvm-project?rev=47581&view=rev llvm-svn: 47624 --- clang/Analysis/ValueState.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/clang/Analysis/ValueState.cpp b/clang/Analysis/ValueState.cpp index b892fd685242..7be59ce5f5fa 100644 --- a/clang/Analysis/ValueState.cpp +++ b/clang/Analysis/ValueState.cpp @@ -246,15 +246,8 @@ RVal ValueStateManager::GetRVal(ValueState St, Expr* E) { // already has persistent storage? We do this because we // are comparing states using pointer equality. Perhaps there is // a better way, since APInts are fairly lightweight. - llvm::APSInt X = ED->getInitVal(); - - // FIXME: This is a hack. The APSInt inside the EnumConstantDecl - // might not match the signedness of the DeclRefExpr. We hack - // a workaround here. Should be fixed elsewhere. - if (E->getType()->isUnsignedIntegerType() != X.isUnsigned()) - X.setIsUnsigned(!X.isUnsigned()); - - return nonlval::ConcreteInt(ValMgr.getValue(X)); + + return nonlval::ConcreteInt(ValMgr.getValue(ED->getInitVal())); } else if (FunctionDecl* FD = dyn_cast(D)) return lval::FuncVal(FD);