summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/ValueState.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-07-10 17:19:18 +0000
committerTed Kremenek <kremenek@apple.com>2008-07-10 17:19:18 +0000
commitad4a7e4a6958ed409b5823c38a52bc424c069f5c (patch)
tree4cdf5105ecb7139577d3029c9e7917e4bea52be3 /clang/lib/Analysis/ValueState.cpp
parent60de1ae3d9fefb9ba85b695e4fba1eb397424252 (diff)
downloadbcm5719-llvm-ad4a7e4a6958ed409b5823c38a52bc424c069f5c.tar.gz
bcm5719-llvm-ad4a7e4a6958ed409b5823c38a52bc424c069f5c.zip
Move some environment methods from ValueState/ValueStateManager to Environment/EnvironmentManager.
llvm-svn: 53412
Diffstat (limited to 'clang/lib/Analysis/ValueState.cpp')
-rw-r--r--clang/lib/Analysis/ValueState.cpp119
1 files changed, 0 insertions, 119 deletions
diff --git a/clang/lib/Analysis/ValueState.cpp b/clang/lib/Analysis/ValueState.cpp
index 23c93ae1d69..cc77edc8268 100644
--- a/clang/lib/Analysis/ValueState.cpp
+++ b/clang/lib/Analysis/ValueState.cpp
@@ -258,125 +258,6 @@ ValueState* ValueStateManager::AddEQ(ValueState* St, SymbolID sym,
return getPersistentState(NewSt);
}
-// FIXME: This should all go into the environment.
-RVal ValueStateManager::GetRVal(ValueState* St, Expr* E) {
-
- for (;;) {
-
- switch (E->getStmtClass()) {
-
- case Stmt::AddrLabelExprClass:
- return LVal::MakeVal(cast<AddrLabelExpr>(E));
-
- // ParenExprs are no-ops.
-
- case Stmt::ParenExprClass:
- E = cast<ParenExpr>(E)->getSubExpr();
- continue;
-
- case Stmt::CharacterLiteralClass: {
- CharacterLiteral* C = cast<CharacterLiteral>(E);
- return NonLVal::MakeVal(BasicVals, C->getValue(), C->getType());
- }
-
- case Stmt::IntegerLiteralClass: {
- return NonLVal::MakeVal(BasicVals, cast<IntegerLiteral>(E));
- }
-
- case Stmt::StringLiteralClass:
- return LVal::MakeVal(cast<StringLiteral>(E));
-
- // Casts where the source and target type are the same
- // are no-ops. We blast through these to get the descendant
- // subexpression that has a value.
-
- case Stmt::ImplicitCastExprClass: {
- ImplicitCastExpr* C = cast<ImplicitCastExpr>(E);
- QualType CT = C->getType();
-
- if (CT->isVoidType())
- return UnknownVal();
-
- QualType ST = C->getSubExpr()->getType();
-
- break;
- }
-
- case Stmt::CastExprClass: {
- CastExpr* C = cast<CastExpr>(E);
- QualType CT = C->getType();
- QualType ST = C->getSubExpr()->getType();
-
- if (CT->isVoidType())
- return UnknownVal();
-
- break;
- }
-
- // Handle all other Expr* using a lookup.
-
- default:
- break;
- };
-
- break;
- }
-
- return St->LookupExpr(E);
-}
-
-RVal ValueStateManager::GetBlkExprRVal(ValueState* St, Expr* E) {
-
- E = E->IgnoreParens();
-
- switch (E->getStmtClass()) {
- case Stmt::CharacterLiteralClass: {
- CharacterLiteral* C = cast<CharacterLiteral>(E);
- return NonLVal::MakeVal(BasicVals, C->getValue(), C->getType());
- }
-
- case Stmt::IntegerLiteralClass: {
- return NonLVal::MakeVal(BasicVals, cast<IntegerLiteral>(E));
- }
-
- default:
- return St->getEnvironment().LookupBlkExpr(E);
- }
-}
-
-ValueState*
-ValueStateManager::SetRVal(ValueState* St, Expr* E, RVal V,
- bool isBlkExpr, bool Invalidate) {
-
- assert (E);
-
- if (V.isUnknown()) {
-
- if (Invalidate) {
-
- ValueState NewSt = *St;
-
- if (isBlkExpr)
- NewSt.Env = EnvMgr.RemoveBlkExpr(NewSt.Env, E);
- else
- NewSt.Env = EnvMgr.RemoveSubExpr(NewSt.Env, E);
-
- return getPersistentState(NewSt);
- }
-
- return St;
- }
-
- ValueState NewSt = *St;
-
- if (isBlkExpr)
- NewSt.Env = EnvMgr.AddBlkExpr(NewSt.Env, E, V);
- else
- NewSt.Env = EnvMgr.AddSubExpr(NewSt.Env, E, V);
-
- return getPersistentState(NewSt);
-}
-
ValueState* ValueStateManager::SetRVal(ValueState* St, LVal LV, RVal V) {
OpenPOWER on IntegriCloud