aboutsummaryrefslogtreecommitdiff
path: root/lib/AST
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-04-23 13:07:39 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-04-23 13:07:39 +0000
commit00b40d3f2fb8b2f9043daf3dd4558bff98346b3c (patch)
treed48af4c3cb69fada518349e2d467bf2c93c9eccf /lib/AST
parent1444aefa635ea46806bba1c7cbc01a85f6faff90 (diff)
Revert "C++ doesn't really use "namespaces" for different kinds of names the same", which seems to break most C++ nightly test apps.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102174 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST')
-rw-r--r--lib/AST/ASTImporter.cpp4
-rw-r--r--lib/AST/DeclBase.cpp24
2 files changed, 10 insertions, 18 deletions
diff --git a/lib/AST/ASTImporter.cpp b/lib/AST/ASTImporter.cpp
index a97536cc77..d3268030c9 100644
--- a/lib/AST/ASTImporter.cpp
+++ b/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/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp
index b5aec0c512..61d22b9d70 100644
--- a/lib/AST/DeclBase.cpp
+++ b/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: