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
This commit is contained in:
Ted Kremenek 2008-02-26 21:04:29 +00:00
parent fa6b366892
commit c7ba873dc7
1 changed files with 2 additions and 9 deletions

View File

@ -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<FunctionDecl>(D))
return lval::FuncVal(FD);