[cfe-commits] r46294 - /cfe/trunk/Analysis/GRConstants.cpp
Ted Kremenek
kremenek at apple.com
Wed Jan 23 16:50:11 PST 2008
Author: kremenek
Date: Wed Jan 23 18:50:08 2008
New Revision: 46294
URL: http://llvm.org/viewvc/llvm-project?rev=46294&view=rev
Log:
Minor tweak in GetValue to avoid an extra check for ParenExprs.
Modified:
cfe/trunk/Analysis/GRConstants.cpp
Modified: cfe/trunk/Analysis/GRConstants.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Analysis/GRConstants.cpp?rev=46294&r1=46293&r2=46294&view=diff
==============================================================================
--- cfe/trunk/Analysis/GRConstants.cpp (original)
+++ cfe/trunk/Analysis/GRConstants.cpp Wed Jan 23 18:50:08 2008
@@ -555,19 +555,24 @@
}
ExprValue GRConstants::GetValue(const StateTy& St, Stmt* S) {
- if (Expr* E = dyn_cast<Expr>(S))
- S = E->IgnoreParens();
-
- switch (S->getStmtClass()) {
- case Stmt::DeclRefExprClass:
- return GetValue(St, LValueDecl(cast<DeclRefExpr>(S)->getDecl()));
+ for (;;) {
+ switch (S->getStmtClass()) {
+ case Stmt::ParenExprClass:
+ S = cast<ParenExpr>(S)->getSubExpr();
+ continue;
+
+ case Stmt::DeclRefExprClass:
+ return GetValue(St, LValueDecl(cast<DeclRefExpr>(S)->getDecl()));
- case Stmt::IntegerLiteralClass:
- return RValue::GetRValue(ValMgr, cast<IntegerLiteral>(S));
+ case Stmt::IntegerLiteralClass:
+ return RValue::GetRValue(ValMgr, cast<IntegerLiteral>(S));
- default:
- break;
- };
+ default:
+ break;
+ };
+
+ break;
+ }
StateTy::TreeTy* T = St.SlimFind(ValueKey(S, getCFG().isBlkExpr(S)));
return T ? T->getValue().second : InvalidValue();
More information about the cfe-commits
mailing list