diff options
author | David Blaikie <dblaikie@gmail.com> | 2012-11-10 01:38:24 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2012-11-10 01:38:24 +0000 |
commit | 3d512d8a75d4cb4609398ce3c2a3ba4c01a23513 (patch) | |
tree | 3c1a0eda0b7cee73a8181b78074b6e4c43d89d44 /lib/Sema/IdentifierResolver.cpp | |
parent | d777e2845110469182809e4efc577899395805f7 (diff) |
Handle redeclarations of catch variables in catch blocks.
Fix to regression caused by r167650, caught by Richard Smith in code review.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167653 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/IdentifierResolver.cpp')
-rw-r--r-- | lib/Sema/IdentifierResolver.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Sema/IdentifierResolver.cpp b/lib/Sema/IdentifierResolver.cpp index 50413c3d95..00939151c6 100644 --- a/lib/Sema/IdentifierResolver.cpp +++ b/lib/Sema/IdentifierResolver.cpp @@ -138,8 +138,11 @@ bool IdentifierResolver::isDeclInScope(Decl *D, DeclContext *Ctx, if (S->getFlags() & Scope::FnTryScope) return S->getParent()->isDeclScope(D); if (S->getParent()->getFlags() & Scope::ControlScope) { - if (S->getParent()->getFlags() & Scope::FnCatchScope) + if (S->getParent()->getFlags() & Scope::FnCatchScope) { S = S->getParent(); + if (S->isDeclScope(D)) + return true; + } return S->getParent()->isDeclScope(D); } } |