summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2012-11-10 01:38:24 +0000
committerDavid Blaikie <dblaikie@gmail.com>2012-11-10 01:38:24 +0000
commit43df4cc568f4b66cc226d8a301cecf27f76a288c (patch)
treedba28d910b84d084465a7a00efb8db467825b05a /clang/lib/Sema
parent9268c94b159b194c98605c990de72e4437509a9b (diff)
downloadbcm5719-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.cpp5
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);
}
}
OpenPOWER on IntegriCloud