clang-tools  6.0.0
Namespaces | Functions | Variables
ClangTidyMain.cpp File Reference
#include "../ClangTidy.h"
#include "clang/Tooling/CommonOptionsParser.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/TargetSelect.h"
Include dependency graph for ClangTidyMain.cpp:

Go to the source code of this file.

Namespaces

 clang
 
 clang::tidy
 

Functions

static cl::OptionCategory ClangTidyCategory ("clang-tidy options")
 
static cl::extrahelp CommonHelp (CommonOptionsParser::HelpMessage)
 
static cl::extrahelp ClangTidyHelp (R"( Configuration files: clang-tidy attempts to read configuration for each source file from a .clang-tidy file located in the closest parent directory of the source file. If any configuration options have a corresponding command-line option, command-line option takes precedence. The effective configuration can be inspected using -dump-config: $ clang-tidy -dump-config --- Checks: '-*,some-check' WarningsAsErrors: '' HeaderFilterRegex: '' AnalyzeTemporaryDtors: false FormatStyle: none User: user CheckOptions: - key: some-check.SomeOption value: 'some value' ... )")
 
static cl::opt< std::string > Checks ("checks", cl::desc(R"( Comma-separated list of globs with optional '-' prefix. Globs are processed in order of appearance in the list. Globs without '-' prefix add checks with matching names to the set, globs with the '-' prefix remove checks with matching names from the set of enabled checks. This option's value is appended to the value of the 'Checks' option in .clang-tidy file, if any. )"), cl::init(""), cl::cat(ClangTidyCategory))
 
static cl::opt< std::string > WarningsAsErrors ("warnings-as-errors", cl::desc(R"( Upgrades warnings to errors. Same format as '-checks'. This option's value is appended to the value of the 'WarningsAsErrors' option in .clang-tidy file, if any. )"), cl::init(""), cl::cat(ClangTidyCategory))
 
static cl::opt< std::string > HeaderFilter ("header-filter", cl::desc(R"( Regular expression matching the names of the headers to output diagnostics from. Diagnostics from the main file of each translation unit are always displayed. Can be used together with -line-filter. This option overrides the 'HeaderFilter' option in .clang-tidy file, if any. )"), cl::init(""), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > SystemHeaders ("system-headers", cl::desc("Display the errors from system headers."), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< std::string > LineFilter ("line-filter", cl::desc(R"( List of files with line ranges to filter the warnings. Can be used together with -header-filter. The format of the list is a JSON array of objects: [ {"name":"file1.cpp","lines":[[1,3],[5,7]]}, {"name":"file2.h"} ] )"), cl::init(""), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > Fix ("fix", cl::desc(R"( Apply suggested fixes. Without -fix-errors clang-tidy will bail out if any compilation errors were found. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > FixErrors ("fix-errors", cl::desc(R"( Apply suggested fixes even if compilation errors were found. If compiler errors have attached fix-its, clang-tidy will apply them as well. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< std::string > FormatStyle ("format-style", cl::desc(R"( Style for formatting code around applied fixes: - 'none' (default) turns off formatting - 'file' (literally 'file', not a placeholder) uses .clang-format file in the closest parent directory - '{ <json> }' specifies options inline, e.g. -format-style='{BasedOnStyle: llvm, IndentWidth: 8}' - 'llvm', 'google', 'webkit', 'mozilla' See clang-format documentation for the up-to-date information about formatting styles and options. This option overrides the 'FormatStyle` option in .clang-tidy file, if any. )"), cl::init("none"), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > ListChecks ("list-checks", cl::desc(R"( List all enabled checks and exit. Use with -checks=* to list all available checks. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > ExplainConfig ("explain-config", cl::desc(R"( For each enabled check explains, where it is enabled, i.e. in clang-tidy binary, command line or a specific configuration file. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< std::string > Config ("config", cl::desc(R"( Specifies a configuration in YAML/JSON format: -config="{Checks:' *', CheckOptions:[{key:x, value:y}]}" When the value is empty, clang-tidy will attempt to find a file named .clang-tidy for each source file in its parent directories. )"), cl::init(""), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > DumpConfig ("dump-config", cl::desc(R"( Dumps configuration in the YAML format to stdout. This option can be used along with a file name (and '--' if the file is outside of a project with configured compilation database). The configuration used for this file will be printed. Use along with -checks=* to include configuration of all checks. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > EnableCheckProfile ("enable-check-profile", cl::desc(R"( Enable per-check timing profiles, and print a report to stderr. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > AnalyzeTemporaryDtors ("analyze-temporary-dtors", cl::desc(R"( Enable temporary destructor-aware analysis in clang-analyzer- checks. This option overrides the value read from a .clang-tidy file. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static cl::opt< std::string > ExportFixes ("export-fixes", cl::desc(R"( YAML file to store suggested fixes in. The stored fixes can be applied to the input source code with clang-apply-replacements. )"), cl::value_desc("filename"), cl::cat(ClangTidyCategory))
 
static cl::opt< bool > Quiet ("quiet", cl::desc(R"( Run clang-tidy in quiet mode. This suppresses printing statistics about ignored warnings and warnings treated as errors if the respective options are specified. )"), cl::init(false), cl::cat(ClangTidyCategory))
 
static void clang::tidy::printStats (const ClangTidyStats &Stats)
 
static void clang::tidy::printProfileData (const ProfileData &Profile, llvm::raw_ostream &OS)
 
static std::unique_ptr< ClangTidyOptionsProvider > clang::tidy::createOptionsProvider ()
 
static int clang::tidy::clangTidyMain (int argc, const char **argv)
 
int main (int argc, const char **argv)
 

Variables

const char DefaultChecks []
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::CERTModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::BoostModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::BugproneModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::LLVMModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::CppCoreGuidelinesModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::FuchsiaModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::GoogleModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::AndroidModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::MiscModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::ModernizeModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::MPIModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::PerformanceModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::ReadabilityModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::ObjCModuleAnchorDestination
 
static int LLVM_ATTRIBUTE_UNUSED clang::tidy::HICPPModuleAnchorDestination
 

Function Documentation

◆ AnalyzeTemporaryDtors()

static cl::opt<bool> AnalyzeTemporaryDtors ( "analyze-temporary-dtors"  ,
cl::desc(R"(Enable temporary destructor-aware analysis inclang-analyzer- checks.This option overrides the value read from a.clang-tidy file.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ Checks()

static cl::opt<std::string> Checks ( "checks"  ,
cl::desc(R"(Comma-separated list of globs with optional '-'prefix. Globs are processed in order ofappearance in the list. Globs without '-'prefix add checks with matching names to theset, globs with the '-' prefix remove checkswith matching names from the set of enabledchecks. This option's value is appended to thevalue of the 'Checks' option in .clang-tidyfile, if any.)")  ,
cl::init("")  ,
cl::cat(ClangTidyCategory  
)
static

◆ ClangTidyCategory()

static cl::OptionCategory ClangTidyCategory ( "clang-tidy options"  )
static

◆ ClangTidyHelp()

static cl::extrahelp ClangTidyHelp ( R"(Configuration files: clang-tidy attempts to read configuration for each source file from a .clang-tidy file located in the closest parent directory of the source file. If any configuration options have a corresponding command-line option, command-line option takes precedence. The effective configuration can be inspected using -dump-config: $ clang-tidy -dump-config --- Checks: '-*,some-check' WarningsAsErrors: '' HeaderFilterRegex: '' AnalyzeTemporaryDtors: false FormatStyle: none User: user CheckOptions: - key: some-check.SomeOption value: 'some value' ...)"  )
static

◆ CommonHelp()

static cl::extrahelp CommonHelp ( CommonOptionsParser::HelpMessage  )
static

◆ Config()

static cl::opt<std::string> Config ( "config"  ,
cl::desc(R"(Specifies a configuration in YAML/JSON format: -config="{Checks:' *', CheckOptions:[{key:x, value:y}]}"When the value is empty, clang-tidy willattempt to find a file named .clang-tidy foreach source file in its parent directories.)")  ,
cl::init("")  ,
cl::cat(ClangTidyCategory  
)
static

◆ DumpConfig()

static cl::opt<bool> DumpConfig ( "dump-config"  ,
cl::desc(R"(Dumps configuration in the YAML format tostdout. This option can be used along with afile name (and '--' if the file is outside of aproject with configured compilation database).The configuration used for this file will beprinted.Use along with -checks=* to includeconfiguration of all checks.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ EnableCheckProfile()

static cl::opt<bool> EnableCheckProfile ( "enable-check-profile"  ,
cl::desc(R"(Enable per-check timing profiles, and print areport to stderr.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ ExplainConfig()

static cl::opt<bool> ExplainConfig ( "explain-config"  ,
cl::desc(R"(For each enabled check explains, where it isenabled, i.e. in clang-tidy binary, commandline or a specific configuration file.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ ExportFixes()

static cl::opt<std::string> ExportFixes ( "export-fixes"  ,
cl::desc(R"(YAML file to store suggested fixes in. Thestored fixes can be applied to the input sourcecode with clang-apply-replacements.)")  ,
cl::value_desc("filename")  ,
cl::cat(ClangTidyCategory  
)
static

◆ Fix()

static cl::opt<bool> Fix ( "fix"  ,
cl::desc(R"(Apply suggested fixes. Without -fix-errorsclang-tidy will bail out if any compilationerrors were found.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ FixErrors()

static cl::opt<bool> FixErrors ( "fix-errors"  ,
cl::desc(R"(Apply suggested fixes even if compilationerrors were found. If compiler errors haveattached fix-its, clang-tidy will apply them aswell.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ FormatStyle()

static cl::opt<std::string> FormatStyle ( "format-style"  ,
cl::desc(R"(Style for formatting code around applied fixes: - 'none' (default) turns off formatting - 'file' (literally 'file', not a placeholder) uses .clang-format file in the closest parent directory - '{ <json> }' specifies options inline, e.g. -format-style='{BasedOnStyle: llvm, IndentWidth: 8}' - 'llvm', 'google', 'webkit', 'mozilla'See clang-format documentation for the up-to-dateinformation about formatting styles and options.This option overrides the 'FormatStyle` option in.clang-tidy file, if any.)")  ,
cl::init("none")  ,
cl::cat(ClangTidyCategory  
)
static

◆ HeaderFilter()

static cl::opt<std::string> HeaderFilter ( "header-filter"  ,
cl::desc(R"(Regular expression matching the names of theheaders to output diagnostics from. Diagnosticsfrom the main file of each translation unit arealways displayed.Can be used together with -line-filter.This option overrides the 'HeaderFilter' optionin .clang-tidy file, if any.)")  ,
cl::init("")  ,
cl::cat(ClangTidyCategory  
)
static

◆ LineFilter()

static cl::opt<std::string> LineFilter ( "line-filter"  ,
cl::desc(R"(List of files with line ranges to filter thewarnings. Can be used together with-header-filter. The format of the list is aJSON array of objects: [ {"name":"file1.cpp","lines":[[1,3],[5,7]]}, {"name":"file2.h"} ])")  ,
cl::init("")  ,
cl::cat(ClangTidyCategory  
)
static

◆ ListChecks()

static cl::opt<bool> ListChecks ( "list-checks"  ,
cl::desc(R"(List all enabled checks and exit. Use with-checks=* to list all available checks.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ main()

int main ( int  argc,
const char **  argv 
)

Definition at line 421 of file ClangTidyMain.cpp.

◆ Quiet()

static cl::opt<bool> Quiet ( "quiet"  ,
cl::desc(R"(Run clang-tidy in quiet mode. This suppressesprinting statistics about ignored warnings andwarnings treated as errors if the respectiveoptions are specified.)")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ SystemHeaders()

static cl::opt<bool> SystemHeaders ( "system-headers"  ,
cl::desc("Display the errors from system headers.")  ,
cl::init(false)  ,
cl::cat(ClangTidyCategory  
)
static

◆ WarningsAsErrors()

static cl::opt<std::string> WarningsAsErrors ( "warnings-as-errors"  ,
cl::desc(R"(Upgrades warnings to errors. Same format as'-checks'.This option's value is appended to the value ofthe 'WarningsAsErrors' option in .clang-tidyfile, if any.)")  ,
cl::init("")  ,
cl::cat(ClangTidyCategory  
)
static

Variable Documentation

◆ DefaultChecks

const char DefaultChecks[]
Initial value:
=
"clang-diagnostic-*,"
"clang-analyzer-*"

Definition at line 33 of file ClangTidyMain.cpp.

Referenced by clang::tidy::clangTidyMain().