Fixup http://llvm.org/viewvc/llvm-project?rev=69165&view=rev (based on feedback from Eli).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69184 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index a298465..6233871 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -2910,9 +2910,7 @@
return true;
}
}
- } else if (isa<ObjCAtTryStmt>(S)) {
- return true;
- }
+ }
return false;
}
@@ -2928,6 +2926,15 @@
if (StatementCreatesScope(*i)) {
ScopeStack.push_back(*i);
PopScopeMap[*i] = ParentCompoundStmt;
+ } else if (ObjCAtTryStmt *AT = dyn_cast<ObjCAtTryStmt>(*i)) {
+ ScopeStack.push_back(*i);
+ PopScopeMap[*i] = AT->getTryBody();
+ } else if (ObjCAtCatchStmt *AC = dyn_cast<ObjCAtCatchStmt>(*i)) {
+ ScopeStack.push_back(*i);
+ PopScopeMap[*i] = AC->getCatchBody();
+ } else if (ObjCAtFinallyStmt *AF = dyn_cast<ObjCAtFinallyStmt>(*i)) {
+ ScopeStack.push_back(*i);
+ PopScopeMap[*i] = AF->getFinallyBody();
} else if (isa<LabelStmt>(CurStmt)) {
LabelScopeMap[CurStmt] = ScopeStack.size() ? ScopeStack.back() : 0;
}