]> granicus.if.org Git - clang/commitdiff
Remove ASTReader::needPendingInstantiation(), introduced in r164993,
authorDouglas Gregor <dgregor@apple.com>
Wed, 3 Oct 2012 18:38:43 +0000 (18:38 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 3 Oct 2012 18:38:43 +0000 (18:38 +0000)
which is neither correct nor necessary. The use of this routine was
eliminated by r165137.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165139 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Serialization/ASTReader.h
lib/Serialization/ASTReaderDecl.cpp

index af69148140c093f15cc32a9133a64ecbe4e4a27d..7bdd0a70dc14d17d6f37c0fe84b2fe80cec67379 100644 (file)
@@ -917,10 +917,6 @@ private:
 
   void finishPendingActions();
 
-  /// \brief Whether D needs to be instantiated, i.e. whether an instantiation
-  /// for D does not exist yet.
-  bool needPendingInstantiation(ValueDecl* D) const;
-
   /// \brief Produce an error diagnostic and return true.
   ///
   /// This routine should only be used for fatal errors that have to
index 54344051dc0f7fbb0bfc90919d8b5fc0562bea64..d9243f62e5ae027edf2bd08592b36d909ff4b9bb 100644 (file)
@@ -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);
-}