diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-10-03 18:38:43 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-10-03 18:38:43 +0000 |
commit | e96037923fe3488d7f5a4ca8157f8530248e67db (patch) | |
tree | 1a81834be49e6ad91cfd2bd3ee476eb5e656df8a /clang/lib/Serialization/ASTReaderDecl.cpp | |
parent | e4a838ac3f2ac6ce29336bf3a67a17a8a1d877c8 (diff) | |
download | bcm5719-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.cpp | 57 |
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); -} |