clang 23.0.0git
ExtractorRegistry.cpp
Go to the documentation of this file.
1//===- ExtractorRegistry.cpp ----------------------------------------------===//
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
11#include <memory>
12
13using namespace clang;
14using namespace ssaf;
15
17
19 for (const auto &Entry : TUSummaryExtractorRegistry::entries())
20 if (Entry.getName() == SummaryName)
21 return true;
22 return false;
23}
24
25std::unique_ptr<TUSummaryExtractor>
27 TUSummaryBuilder &Builder) {
28 for (const auto &Entry : TUSummaryExtractorRegistry::entries())
29 if (Entry.getName() == SummaryName)
30 return Entry.instantiate(Builder);
31 assert(false && "Unknown SummaryExtractor name");
32 return nullptr;
33}
34
35void ssaf::printAvailableTUSummaryExtractors(llvm::raw_ostream &OS) {
36 OS << "OVERVIEW: Available SSAF summary extractors:\n\n";
37 for (const auto &Entry : TUSummaryExtractorRegistry::entries())
38 OS << " " << Entry.getName() << " - " << Entry.getDesc() << "\n";
39}
Uniquely identifies an analysis summary.
Definition SummaryName.h:22
std::unique_ptr< TUSummaryExtractor > makeTUSummaryExtractor(llvm::StringRef SummaryName, TUSummaryBuilder &Builder)
Try to instantiate a TUSummaryExtractor with a given name.
llvm::Registry< TUSummaryExtractor, TUSummaryBuilder & > TUSummaryExtractorRegistry
void printAvailableTUSummaryExtractors(llvm::raw_ostream &OS)
Print the list of available TUSummaryExtractors.
bool isTUSummaryExtractorRegistered(llvm::StringRef SummaryName)
Check if a TUSummaryExtractor was registered with a given name.
The JSON file list parser is used to communicate input to InstallAPI.
Diagnostic wrappers for TextAPI types for error reporting.
Definition Dominators.h:30