diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-05-03 15:37:31 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-05-03 15:37:31 +0000 | 
| commit | 5cf8d67bc93050002c32d37e0d2fc8a3a500a7fa (patch) | |
| tree | a46ba05be611b6752ca86f21a0d5a91b7e8db4bd /clang/lib | |
| parent | 95c70ec678b9584c7e7516d420b95176eb5a0e11 (diff) | |
| download | bcm5719-llvm-5cf8d67bc93050002c32d37e0d2fc8a3a500a7fa.tar.gz bcm5719-llvm-5cf8d67bc93050002c32d37e0d2fc8a3a500a7fa.zip  | |
When declaring a namespace alias, ignore previous declarations that
aren't in scope. Fixes PR7014.
llvm-svn: 102915
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 1ca7a728f0a..0db0d9e3896 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -4004,9 +4004,13 @@ Sema::DeclPtrTy Sema::ActOnNamespaceAliasDef(Scope *S,    LookupParsedName(R, S, &SS);    // Check if we have a previous declaration with the same name. -  if (NamedDecl *PrevDecl -        = LookupSingleName(S, Alias, AliasLoc, LookupOrdinaryName,  -                           ForRedeclaration)) { +  NamedDecl *PrevDecl +    = LookupSingleName(S, Alias, AliasLoc, LookupOrdinaryName,  +                       ForRedeclaration); +  if (PrevDecl && !isDeclInScope(PrevDecl, CurContext, S)) +    PrevDecl = 0; + +  if (PrevDecl) {      if (NamespaceAliasDecl *AD = dyn_cast<NamespaceAliasDecl>(PrevDecl)) {        // We already have an alias with the same name that points to the same        // namespace, so don't create a new one.  | 

