diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-05-09 23:39:43 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-05-09 23:39:43 +0000 |
commit | fa8e15bfa5341a06b5cd1042a49e04708d6e2140 (patch) | |
tree | 6035142f07a01c7562805cd3647dd601b041712a /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 867af2678fb238daa9f3fd820ed4a4698c8647fa (diff) | |
download | bcm5719-llvm-fa8e15bfa5341a06b5cd1042a49e04708d6e2140.tar.gz bcm5719-llvm-fa8e15bfa5341a06b5cd1042a49e04708d6e2140.zip |
-Implement proper name lookup for namespaces.
-identifierResolver exposes an iterator interface to get all decls through the scope chain.
-The semantic staff (checking IdentifierNamespace and Doug's checking for shadowed tags were moved out of IdentifierResolver and back into Sema. IdentifierResolver just gives an iterator for all reachable decls of an identifier.
llvm-svn: 50923
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index c3b6bce447a..f403858e752 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -335,7 +335,8 @@ Sema::DeclTy *Sema::ActOnStartNamespaceDef(Scope *NamespcScope, LookupDecl(II, Decl::IDNS_Tag | Decl::IDNS_Ordinary, DeclRegionScope, /*enableLazyBuiltinCreation=*/false); - if (PrevDecl && DeclRegionScope->isDeclScope(PrevDecl)) { + if (PrevDecl && + IdResolver.isDeclInScope(PrevDecl, CurContext, DeclRegionScope)) { if (NamespaceDecl *OrigNS = dyn_cast<NamespaceDecl>(PrevDecl)) { // This is an extended namespace definition. // Attach this namespace decl to the chain of extended namespace |