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 | 43df4cc568f4b66cc226d8a301cecf27f76a288c (patch) | |
tree | dba28d910b84d084465a7a00efb8db467825b05a /clang/lib/Sema | |
parent | 9268c94b159b194c98605c990de72e4437509a9b (diff) | |
download | bcm5719-llvm-43df4cc568f4b66cc226d8a301cecf27f76a288c.tar.gz bcm5719-llvm-43df4cc568f4b66cc226d8a301cecf27f76a288c.zip |
Handle redeclarations of catch variables in catch blocks.
Fix to regression caused by r167650, caught by Richard Smith in code review.
llvm-svn: 167653
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/IdentifierResolver.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/IdentifierResolver.cpp b/clang/lib/Sema/IdentifierResolver.cpp index 50413c3d958..00939151c67 100644 --- a/clang/lib/Sema/IdentifierResolver.cpp +++ b/clang/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); } } |