[PATCH] D66136: Remove no-op callbacks from TemplateInstantiationCallback

Dmitri Gribenko via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 13 04:23:40 PDT 2019


gribozavr created this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

It is not clear to me that these callbacks ever did anything, they were
empty even in the original implementation (r324808).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D66136

Files:
  clang/include/clang/Sema/TemplateInstCallback.h
  clang/lib/Frontend/FrontendActions.cpp
  clang/lib/Parse/ParseAST.cpp


Index: clang/lib/Parse/ParseAST.cpp
===================================================================
--- clang/lib/Parse/ParseAST.cpp
+++ clang/lib/Parse/ParseAST.cpp
@@ -122,10 +122,6 @@
   bool OldCollectStats = PrintStats;
   std::swap(OldCollectStats, S.CollectStats);
 
-  // Initialize the template instantiation observer chain.
-  // FIXME: See note on "finalize" below.
-  initialize(S.TemplateInstCallbacks, S);
-
   ASTConsumer *Consumer = &S.getASTConsumer();
 
   std::unique_ptr<Parser> ParseOP(
@@ -169,14 +165,6 @@
     Consumer->HandleTopLevelDecl(DeclGroupRef(D));
 
   Consumer->HandleTranslationUnit(S.getASTContext());
-
-  // Finalize the template instantiation observer chain.
-  // FIXME: This (and init.) should be done in the Sema class, but because
-  // Sema does not have a reliable "Finalize" function (it has a
-  // destructor, but it is not guaranteed to be called ("-disable-free")).
-  // So, do the initialization above and do the finalization here:
-  finalize(S.TemplateInstCallbacks, S);
-
   std::swap(OldCollectStats, S.CollectStats);
   if (PrintStats) {
     llvm::errs() << "\nSTATISTICS:\n";
Index: clang/lib/Frontend/FrontendActions.cpp
===================================================================
--- clang/lib/Frontend/FrontendActions.cpp
+++ clang/lib/Frontend/FrontendActions.cpp
@@ -376,10 +376,6 @@
   using CodeSynthesisContext = Sema::CodeSynthesisContext;
 
 public:
-  void initialize(const Sema &) override {}
-
-  void finalize(const Sema &) override {}
-
   void atTemplateBegin(const Sema &TheSema,
                        const CodeSynthesisContext &Inst) override {
     displayTemplightEntry<true>(llvm::outs(), TheSema, Inst);
Index: clang/include/clang/Sema/TemplateInstCallback.h
===================================================================
--- clang/include/clang/Sema/TemplateInstCallback.h
+++ clang/include/clang/Sema/TemplateInstCallback.h
@@ -24,12 +24,6 @@
 public:
   virtual ~TemplateInstantiationCallback() = default;
 
-  /// Called before doing AST-parsing.
-  virtual void initialize(const Sema &TheSema) = 0;
-
-  /// Called after AST-parsing is completed.
-  virtual void finalize(const Sema &TheSema) = 0;
-
   /// Called when instantiation of a template just began.
   virtual void atTemplateBegin(const Sema &TheSema,
                                const Sema::CodeSynthesisContext &Inst) = 0;
@@ -39,24 +33,6 @@
                              const Sema::CodeSynthesisContext &Inst) = 0;
 };
 
-template <class TemplateInstantiationCallbackPtrs>
-void initialize(TemplateInstantiationCallbackPtrs &Callbacks,
-                const Sema &TheSema) {
-  for (auto &C : Callbacks) {
-    if (C)
-      C->initialize(TheSema);
-  }
-}
-
-template <class TemplateInstantiationCallbackPtrs>
-void finalize(TemplateInstantiationCallbackPtrs &Callbacks,
-              const Sema &TheSema) {
-  for (auto &C : Callbacks) {
-    if (C)
-      C->finalize(TheSema);
-  }
-}
-
 template <class TemplateInstantiationCallbackPtrs>
 void atTemplateBegin(TemplateInstantiationCallbackPtrs &Callbacks,
                      const Sema &TheSema,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66136.214804.patch
Type: text/x-patch
Size: 3130 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190813/56e216a4/attachment.bin>


More information about the cfe-commits mailing list