clang API Documentation

Classes | Public Types | Public Member Functions
clang::ento::CheckerRegistry Class Reference

#include <CheckerRegistry.h>

List of all members.

Classes

struct  CheckerInfo

Public Types

typedef void(* InitializationFunction )(CheckerManager &)
typedef std::vector< CheckerInfoCheckerInfoList

Public Member Functions

void addChecker (InitializationFunction fn, StringRef fullName, StringRef desc)
template<class T >
void addChecker (StringRef fullName, StringRef desc)
void initializeManager (CheckerManager &mgr, SmallVectorImpl< CheckerOptInfo > &opts) const
void printHelp (raw_ostream &out, size_t maxNameChars=30) const

Detailed Description

Manages a set of available checkers for running a static analysis. The checkers are organized into packages by full name, where including a package will recursively include all subpackages and checkers within it. For example, the checker "core.builtin.NoReturnFunctionChecker" will be included if initializeManager() is called with an option of "core", "core.builtin", or the full name "core.builtin.NoReturnFunctionChecker".

Definition at line 77 of file CheckerRegistry.h.


Member Typedef Documentation

Definition at line 91 of file CheckerRegistry.h.

Initialization functions perform any necessary setup for a checker. They should include a call to CheckerManager::registerChecker.

Definition at line 81 of file CheckerRegistry.h.


Member Function Documentation

void CheckerRegistry::addChecker ( InitializationFunction  fn,
StringRef  fullName,
StringRef  desc 
)

Adds a checker to the registry. Use this non-templated overload when your checker requires custom initialization.

Definition at line 81 of file CheckerRegistry.cpp.

References PackageSeparator.

Referenced by addChecker().

template<class T >
void clang::ento::CheckerRegistry::addChecker ( StringRef  fullName,
StringRef  desc 
) [inline]

Adds a checker to the registry. Use this templated overload when your checker does not require any custom initialization.

Definition at line 108 of file CheckerRegistry.h.

References addChecker().

void CheckerRegistry::initializeManager ( CheckerManager mgr,
SmallVectorImpl< CheckerOptInfo > &  opts 
) const

Initializes a CheckerManager by calling the initialization functions for all checkers specified by the given CheckerOptInfo list. The order of this list is significant; later options can be used to reverse earlier ones. This can be used to exclude certain checkers in an included package.

Definition at line 94 of file CheckerRegistry.cpp.

References checkerNameLT(), collectCheckers(), and clang::ento::CheckerManager::setCurrentCheckName().

void CheckerRegistry::printHelp ( raw_ostream &  out,
size_t  maxNameChars = 30 
) const

Prints the name and description of all checkers in this registry. This output is not intended to be machine-parseable.

Definition at line 114 of file CheckerRegistry.cpp.

References checkerNameLT().


The documentation for this class was generated from the following files: