summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReaderDecl.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2012-10-03 18:38:43 +0000
committerDouglas Gregor <dgregor@apple.com>2012-10-03 18:38:43 +0000
commite96037923fe3488d7f5a4ca8157f8530248e67db (patch)
tree1a81834be49e6ad91cfd2bd3ee476eb5e656df8a /clang/lib/Serialization/ASTReaderDecl.cpp
parente4a838ac3f2ac6ce29336bf3a67a17a8a1d877c8 (diff)
downloadbcm5719-llvm-e96037923fe3488d7f5a4ca8157f8530248e67db.tar.gz
bcm5719-llvm-e96037923fe3488d7f5a4ca8157f8530248e67db.zip
Remove ASTReader::needPendingInstantiation(), introduced in r164993,
which is neither correct nor necessary. The use of this routine was eliminated by r165137. llvm-svn: 165139
Diffstat (limited to 'clang/lib/Serialization/ASTReaderDecl.cpp')
-rw-r--r--clang/lib/Serialization/ASTReaderDecl.cpp57
1 files changed, 0 insertions, 57 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp
index 54344051dc0..d9243f62e5a 100644
--- a/clang/lib/Serialization/ASTReaderDecl.cpp
+++ b/clang/lib/Serialization/ASTReaderDecl.cpp
@@ -2510,60 +2510,3 @@ void ASTDeclReader::UpdateDecl(Decl *D, ModuleFile &ModuleFile,
}
}
}
-
-/// \brief Return a template specialization of ND (should be a TemplateDecl)
-/// that matches FD or TD.
-static NamedDecl* findMatchingSpecialization(FunctionDecl* FD,
- ClassTemplateSpecializationDecl*TD,
- NamedDecl* ND) {
- TemplateDecl* Templt = dyn_cast<TemplateDecl>(ND);
- if (!Templt) return 0;
- if (FD) {
- FunctionTemplateDecl* FTD = dyn_cast<FunctionTemplateDecl>(Templt);
- if (!FTD) return 0;
- const TemplateArgumentList* TmpltArgs = FD->getTemplateSpecializationArgs();
- assert(TmpltArgs || "Template without arguments");
- void* InsertionPoint;
- return FTD->findSpecialization(TmpltArgs->data(), TmpltArgs->size(),
- InsertionPoint);
- } else {
- ClassTemplateDecl* CTD = dyn_cast<ClassTemplateDecl>(Templt);
- if (!CTD) return 0;
- const TemplateArgumentList& TmpltArgs = TD->getTemplateArgs();
- void* InsertionPoint;
- return CTD->findSpecialization(TmpltArgs.data(), TmpltArgs.size(),
- InsertionPoint);
- }
- return 0;
-}
-
-/// \brief Find out whether an instantiation (outside the module) already exists
-bool ASTReader::needPendingInstantiation(ValueDecl* D) const {
- DeclContext *DC = D->getDeclContext()->getRedeclContext();
- DeclarationName Name = D->getDeclName();
- assert(Name && "unnamed template");
-
- FunctionDecl* FD = dyn_cast<FunctionDecl>(D);
- ClassTemplateSpecializationDecl* CD
- = FD ? 0 : dyn_cast<ClassTemplateSpecializationDecl>(D);
-
- NamedDecl* FoundSpecialization = 0;
- if (DC->isTranslationUnit() && SemaObj) {
- IdentifierResolver &IdResolver = SemaObj->IdResolver;
- for (IdentifierResolver::iterator I = IdResolver.begin(Name),
- IEnd = IdResolver.end();
- I != IEnd && !FoundSpecialization; ++I)
- FoundSpecialization = findMatchingSpecialization(FD, CD, *I);
- } else {
- // templates are redeclarables, i.e. they must have been merged into
- // the primary context. Use localUncachedLookup to not pick up template
- // decls from modules again.
- llvm::SmallVector<NamedDecl*, 6> Results;
- DC->getPrimaryContext()->localUncachedLookup(Name, Results);
- for (llvm::SmallVector<NamedDecl *, 6>::const_iterator
- I = Results.begin(), E = Results.end();
- I != E && FoundSpecialization; ++I)
- FoundSpecialization = findMatchingSpecialization(FD, CD, *I);
- }
- return FoundSpecialization && isSameEntity(FoundSpecialization, D);
-}
OpenPOWER on IntegriCloud