20#ifndef LLVM_CLANG_STATICANALYZER_CORE_CHECKERREGISTRYDATA_H
21#define LLVM_CLANG_STATICANALYZER_CORE_CHECKERREGISTRYDATA_H
24#include "llvm/ADT/SetVector.h"
25#include "llvm/ADT/StringMap.h"
26#include "llvm/ADT/StringRef.h"
27#include "llvm/Support/raw_ostream.h"
61 "Unknown command line option type!");
65 "Invalid value for boolean command line option! Maybe incorrect "
66 "parameters to the addCheckerOption or addPackageOption method?");
70 "Invalid value for integer command line option! Maybe incorrect "
71 "parameters to the addCheckerOption or addPackageOption method?");
76 "Invalid development status!");
79 LLVM_DUMP_METHOD
void dump()
const;
80 LLVM_DUMP_METHOD
void dumpToStream(llvm::raw_ostream &Out)
const;
138 LLVM_DUMP_METHOD
void dump()
const;
139 LLVM_DUMP_METHOD
void dumpToStream(llvm::raw_ostream &Out)
const;
158 LLVM_DUMP_METHOD
void dump()
const;
159 LLVM_DUMP_METHOD
void dumpToStream(llvm::raw_ostream &Out)
const;
164namespace checker_registry {
168 return Lhs.FullName < Rhs.FullName;
175template <
class CheckerOrPackageInfoList>
176std::conditional_t<std::is_const<CheckerOrPackageInfoList>::value,
177 typename CheckerOrPackageInfoList::const_iterator,
178 typename CheckerOrPackageInfoList::iterator>
181 using CheckerOrPackage =
typename CheckerOrPackageInfoList::value_type;
184 assert(llvm::is_sorted(Collection, CheckerOrPackageFullNameLT{}) &&
185 "In order to efficiently gather checkers/packages, this function "
186 "expects them to be already sorted!");
188 return llvm::lower_bound(Collection, CheckerOrPackage(
FullName),
189 CheckerOrPackageFullNameLT{});