[cfe-commits] r143797 - /cfe/trunk/lib/Analysis/LiveVariables.cpp
Ted Kremenek
kremenek at apple.com
Sat Nov 5 00:34:29 PDT 2011
Author: kremenek
Date: Sat Nov 5 02:34:28 2011
New Revision: 143797
URL: http://llvm.org/viewvc/llvm-project?rev=143797&view=rev
Log:
Tweak LookThroughStmt() in LiveVariables to properly look through alternativing ParenExprs and OpaqueValueExprs. Thanks to Anna and Argiris for iterating on this function. My original patch embarssingly didn't even pass the Clang tests.
Modified:
cfe/trunk/lib/Analysis/LiveVariables.cpp
Modified: cfe/trunk/lib/Analysis/LiveVariables.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/LiveVariables.cpp?rev=143797&r1=143796&r2=143797&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/LiveVariables.cpp (original)
+++ cfe/trunk/lib/Analysis/LiveVariables.cpp Sat Nov 5 02:34:28 2011
@@ -232,10 +232,15 @@
}
static const Stmt *LookThroughStmt(const Stmt *S) {
- if (const OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(S))
- return OVE->getSourceExpr()->IgnoreParens();
- if (const Expr *E = dyn_cast<Expr>(S))
- return E->IgnoreParens();
+ while (S) {
+ if (const Expr *Ex = dyn_cast<Expr>(S))
+ S = Ex->IgnoreParens();
+ if (const OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(S)) {
+ S = OVE->getSourceExpr();
+ continue;
+ }
+ break;
+ }
return S;
}
More information about the cfe-commits
mailing list