clang 23.0.0git
ExtractorRegistry.h
Go to the documentation of this file.
1//===- ExtractorRegistry.h --------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Registry for TUSummaryExtractors, and some helper functions.
10// To register some custom extractor, insert this code:
11//
12// static TUSummaryExtractorRegistry::Add<MyExtractor>
13// X("MyExtractor", "My awesome extractor");
14//
15//===----------------------------------------------------------------------===//
16
17#ifndef LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_EXTRACTORREGISTRY_H
18#define LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_EXTRACTORREGISTRY_H
19
22#include "llvm/ADT/StringRef.h"
23#include "llvm/Support/Registry.h"
24
25namespace clang::ssaf {
26
27/// Check if a TUSummaryExtractor was registered with a given name.
29
30/// Try to instantiate a TUSummaryExtractor with a given name.
31/// This might return null if the construction of the desired TUSummaryExtractor
32/// failed.
33/// It's a fatal error if there is no extractor registered with the name.
34std::unique_ptr<ASTConsumer> makeTUSummaryExtractor(llvm::StringRef SummaryName,
35 TUSummaryBuilder &Builder);
36
37// Registry for adding new TUSummaryExtractor implementations.
39 llvm::Registry<TUSummaryExtractor, TUSummaryBuilder &>;
40
41} // namespace clang::ssaf
42
43namespace llvm {
44extern template class CLANG_TEMPLATE_ABI
45 Registry<clang::ssaf::TUSummaryExtractorRegistry>;
46} // namespace llvm
47
48#endif // LLVM_CLANG_ANALYSIS_SCALABLE_TUSUMMARY_EXTRACTORREGISTRY_H
Uniquely identifies an analysis summary.
Definition SummaryName.h:21
std::unique_ptr< ASTConsumer > makeTUSummaryExtractor(llvm::StringRef SummaryName, TUSummaryBuilder &Builder)
Try to instantiate a TUSummaryExtractor with a given name.
llvm::Registry< TUSummaryExtractor, TUSummaryBuilder & > TUSummaryExtractorRegistry
bool isTUSummaryExtractorRegistered(llvm::StringRef SummaryName)
Check if a TUSummaryExtractor was registered with a given name.
Diagnostic wrappers for TextAPI types for error reporting.
Definition Dominators.h:30