summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/LiveVariables.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Analysis/LiveVariables.cpp')
-rw-r--r--clang/lib/Analysis/LiveVariables.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Analysis/LiveVariables.cpp b/clang/lib/Analysis/LiveVariables.cpp
index ccb301e58eb..aa4626b2056 100644
--- a/clang/lib/Analysis/LiveVariables.cpp
+++ b/clang/lib/Analysis/LiveVariables.cpp
@@ -233,11 +233,15 @@ static const VariableArrayType *FindVA(QualType Ty) {
static const Stmt *LookThroughStmt(const Stmt *S) {
while (S) {
- if (const ParenExpr *ParenE = dyn_cast<ParenExpr>(S))
+ if (const ParenExpr *ParenE = dyn_cast<ParenExpr>(S)) {
S = ParenE->getSubExpr();
- else if (const OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(S))
+ continue;
+ } else if (const OpaqueValueExpr *OVE = dyn_cast<OpaqueValueExpr>(S)) {
S = OVE->getSourceExpr();
- else
+ continue;
+ } else if (const Expr *E = dyn_cast<Expr>(S)) {
+ return E->IgnoreParens();
+ } else
break;
}
return S;
OpenPOWER on IntegriCloud