14#ifndef LLVM_CLANG_LIB_STATICANALYZER_CHECKER_YAML_H
15#define LLVM_CLANG_LIB_STATICANALYZER_CHECKER_YAML_H
18#include "llvm/Support/VirtualFileSystem.h"
19#include "llvm/Support/YAMLTraits.h"
28template <
class T,
class Checker>
30 StringRef Option, StringRef ConfigFile) {
31 if (ConfigFile.trim().empty())
34 llvm::vfs::FileSystem *FS = llvm::vfs::getRealFileSystem().get();
35 llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> Buffer =
36 FS->getBufferForFile(ConfigFile.str());
38 if (Buffer.getError()) {
40 "a valid filename instead of '" +
41 std::string(ConfigFile) +
"'");
45 llvm::yaml::Input Input(Buffer.get()->getBuffer());
49 if (std::error_code ec = Input.error()) {
51 "a valid yaml file: " + ec.message());
void reportInvalidCheckerOptionValue(const CheckerBase *C, StringRef OptionName, StringRef ExpectedValueDesc) const
Emits an error through a DiagnosticsEngine about an invalid user supplied checker option value.
std::optional< T > getConfiguration(CheckerManager &Mgr, Checker *Chk, StringRef Option, StringRef ConfigFile)
Read the given file from the filesystem and parse it as a yaml file.
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T