clang 20.0.0git
CheckerRegistryData.h
Go to the documentation of this file.
1//===- CheckerRegistryData.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// This file contains the data structures to which the TableGen file Checkers.td
10// maps to, as well as what was parsed from the the specific invocation (whether
11// a checker/package is enabled, their options values, etc).
12//
13// The parsing of the invocation is done by CheckerRegistry, which is found in
14// the Frontend library. This allows the Core and Checkers libraries to utilize
15// this information, such as enforcing rules on checker dependency bug emission,
16// ensuring all checker options were queried, etc.
17//
18//===----------------------------------------------------------------------===//
19
20#ifndef LLVM_CLANG_STATICANALYZER_CORE_CHECKERREGISTRYDATA_H
21#define LLVM_CLANG_STATICANALYZER_CORE_CHECKERREGISTRYDATA_H
22
23#include "clang/Basic/LLVM.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"
28
29namespace clang {
30
31class AnalyzerOptions;
32
33namespace ento {
34
35class CheckerManager;
36
37/// Initialization functions perform any necessary setup for a checker.
38/// They should include a call to CheckerManager::registerChecker.
41
42/// Specifies a command line option. It may either belong to a checker or a
43/// package.