diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2010-04-23 13:07:39 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2010-04-23 13:07:39 +0000 |
| commit | 45b2d8ab42084898cb3d764dd623d1c9b198c6f1 (patch) | |
| tree | e5f7a6c18df81abcc1caf064be3f680d88c1d529 /clang/lib/AST | |
| parent | e97d39b0f248fc21c78d4816c7412dbb3dd8b1d6 (diff) | |
| download | bcm5719-llvm-45b2d8ab42084898cb3d764dd623d1c9b198c6f1.tar.gz bcm5719-llvm-45b2d8ab42084898cb3d764dd623d1c9b198c6f1.zip | |
Revert "C++ doesn't really use "namespaces" for different kinds of names the same", which seems to break most C++ nightly test apps.
llvm-svn: 102174
Diffstat (limited to 'clang/lib/AST')
| -rw-r--r-- | clang/lib/AST/ASTImporter.cpp | 4 | ||||
| -rw-r--r-- | clang/lib/AST/DeclBase.cpp | 24 |
2 files changed, 10 insertions, 18 deletions
diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp index a97536cc77e..d3268030c91 100644 --- a/clang/lib/AST/ASTImporter.cpp +++ b/clang/lib/AST/ASTImporter.cpp @@ -1438,7 +1438,7 @@ Decl *ASTNodeImporter::VisitNamespaceDecl(NamespaceDecl *D) { for (DeclContext::lookup_result Lookup = DC->lookup(Name); Lookup.first != Lookup.second; ++Lookup.first) { - if (!(*Lookup.first)->isInIdentifierNamespace(Decl::IDNS_Namespace)) + if (!(*Lookup.first)->isInIdentifierNamespace(Decl::IDNS_Ordinary)) continue; if (NamespaceDecl *FoundNS = dyn_cast<NamespaceDecl>(*Lookup.first)) { @@ -1451,7 +1451,7 @@ Decl *ASTNodeImporter::VisitNamespaceDecl(NamespaceDecl *D) { } if (!ConflictingDecls.empty()) { - Name = Importer.HandleNameConflict(Name, DC, Decl::IDNS_Namespace, + Name = Importer.HandleNameConflict(Name, DC, Decl::IDNS_Ordinary, ConflictingDecls.data(), ConflictingDecls.size()); } diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp index b5aec0c5125..61d22b9d707 100644 --- a/clang/lib/AST/DeclBase.cpp +++ b/clang/lib/AST/DeclBase.cpp @@ -231,28 +231,23 @@ unsigned Decl::getIdentifierNamespaceForKind(Kind DeclKind) { case CXXConstructor: case CXXDestructor: case CXXConversion: + case Typedef: case EnumConstant: case Var: case ImplicitParam: case ParmVar: case NonTypeTemplateParm: case ObjCMethod: + case ObjCInterface: case ObjCProperty: - return IDNS_Ordinary; - case ObjCCompatibleAlias: - case ObjCInterface: - return IDNS_Ordinary | IDNS_Type; - - case Typedef: - case UnresolvedUsingTypename: - case TemplateTypeParm: - return IDNS_Ordinary | IDNS_Type; + return IDNS_Ordinary; case UsingShadow: return 0; // we'll actually overwrite this later case UnresolvedUsingValue: + case UnresolvedUsingTypename: return IDNS_Ordinary | IDNS_Using; case Using: @@ -269,18 +264,15 @@ unsigned Decl::getIdentifierNamespaceForKind(Kind DeclKind) { case Record: case CXXRecord: case Enum: - return IDNS_Tag | IDNS_Type; + case TemplateTypeParm: + return IDNS_Tag; case Namespace: - case NamespaceAlias: - return IDNS_Namespace; - case FunctionTemplate: - return IDNS_Ordinary; - case ClassTemplate: case TemplateTemplateParm: - return IDNS_Ordinary | IDNS_Tag | IDNS_Type; + case NamespaceAlias: + return IDNS_Tag | IDNS_Ordinary; // Never have names. case Friend: |

