================
@@ -0,0 +1,48 @@
+//===- ExtractorRegistry.h --------------------------------------*- C++ 
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Registry for TUSummaryExtractors, and some helper functions.
+// To register some custom extractor, insert this code:
+//
+//   static TUSummaryExtractorRegistry::Add<MyExtractor>
+//     X("MyExtractor", "My awesome extractor");
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_EXTRACTORREGISTRY_H
+#define LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_EXTRACTORREGISTRY_H
+
+#include "clang/Analysis/Scalable/TUSummary/TUSummaryExtractor.h"
+#include "clang/Support/Compiler.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Registry.h"
+
+namespace clang::ssaf {
+
+/// Check if a TUSummaryExtractor was registered with a given name.
+bool isTUSummaryExtractorRegistered(llvm::StringRef SummaryName);
+
+/// Try to instantiate a TUSummaryExtractor with a given name.
+/// This might return null if the construction of the desired 
TUSummaryExtractor
+/// failed.
+/// It's a fatal error if there is no extractor registered with the name.
+std::unique_ptr<ASTConsumer> makeTUSummaryExtractor(llvm::StringRef 
SummaryName,
+                                                    TUSummaryBuilder &Builder);
+
+// Registry for adding new TUSummaryExtractor implementations.
+using TUSummaryExtractorRegistry =
+    llvm::Registry<TUSummaryExtractor, TUSummaryBuilder &>;
+
+} // namespace clang::ssaf
+
+namespace llvm {
+extern template class CLANG_TEMPLATE_ABI
+    Registry<clang::ssaf::TUSummaryExtractorRegistry>;
----------------
kikairoya wrote:

This actually declares `Registry<Registry<clang::ssaf::TUSummaryExtractor, 
clang::ssaf::TUSummaryBuilder &>>`, but should be 
`Registry<clang::ssaf::TUSummaryExtractor, clang::ssaf::TUSummaryBuilder &>`.

https://github.com/llvm/llvm-project/pull/173290
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to