|
clang 22.0.0git
|
#include "clang/Tooling/Tooling.h"#include "clang/Basic/Diagnostic.h"#include "clang/Basic/DiagnosticIDs.h"#include "clang/Basic/DiagnosticOptions.h"#include "clang/Basic/FileManager.h"#include "clang/Basic/FileSystemOptions.h"#include "clang/Basic/LLVM.h"#include "clang/Driver/Compilation.h"#include "clang/Driver/Driver.h"#include "clang/Driver/Job.h"#include "clang/Driver/Tool.h"#include "clang/Driver/ToolChain.h"#include "clang/Frontend/ASTUnit.h"#include "clang/Frontend/CompilerInstance.h"#include "clang/Frontend/CompilerInvocation.h"#include "clang/Frontend/FrontendDiagnostic.h"#include "clang/Frontend/FrontendOptions.h"#include "clang/Frontend/TextDiagnosticPrinter.h"#include "clang/Lex/HeaderSearchOptions.h"#include "clang/Lex/PreprocessorOptions.h"#include "clang/Options/Options.h"#include "clang/Tooling/ArgumentsAdjusters.h"#include "clang/Tooling/CompilationDatabase.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/IntrusiveRefCntPtr.h"#include "llvm/ADT/StringRef.h"#include "llvm/ADT/Twine.h"#include "llvm/Option/ArgList.h"#include "llvm/Option/OptTable.h"#include "llvm/Option/Option.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/MemoryBuffer.h"#include "llvm/Support/Path.h"#include "llvm/Support/VirtualFileSystem.h"#include "llvm/Support/raw_ostream.h"#include "llvm/TargetParser/Host.h"#include <cassert>#include <cstring>#include <memory>#include <string>#include <system_error>#include <utility>#include <vector>Go to the source code of this file.
Namespaces | |
| namespace | clang |
| The JSON file list parser is used to communicate input to InstallAPI. | |
| namespace | clang::tooling |
Macros | |
| #define | DEBUG_TYPE "clang-tooling" |
Functions | |
| static driver::Driver * | newDriver (DiagnosticsEngine *Diagnostics, const char *BinaryName, IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS) |
| Builds a clang driver initialized for running clang tools. | |
| static bool | ignoreExtraCC1Commands (const driver::Compilation *Compilation) |
| Decide whether extra compiler frontend commands can be ignored. | |
| const llvm::opt::ArgStringList * | clang::tooling::getCC1Arguments (DiagnosticsEngine *Diagnostics, driver::Compilation *Compilation) |
| Retrieves the flags of the -cc1 job in Compilation that has only source files as its inputs. | |
| CompilerInvocation * | clang::tooling::newInvocation (DiagnosticsEngine *Diagnostics, ArrayRef< const char * > CC1Args, const char *const BinaryName) |
Creates a CompilerInvocation. | |
| bool | clang::tooling::runToolOnCode (std::unique_ptr< FrontendAction > ToolAction, const Twine &Code, const Twine &FileName="input.cc", std::shared_ptr< PCHContainerOperations > PCHContainerOps=std::make_shared< PCHContainerOperations >()) |
| Runs (and deletes) the tool on 'Code' with the -fsyntax-only flag. | |
| static std::vector< std::string > | getSyntaxOnlyToolArgs (const Twine &ToolName, const std::vector< std::string > &ExtraArgs, StringRef FileName) |
| bool | clang::tooling::runToolOnCodeWithArgs (std::unique_ptr< FrontendAction > ToolAction, const Twine &Code, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, const std::vector< std::string > &Args, const Twine &FileName="input.cc", const Twine &ToolName="clang-tool", std::shared_ptr< PCHContainerOperations > PCHContainerOps=std::make_shared< PCHContainerOperations >()) |
| bool | clang::tooling::runToolOnCodeWithArgs (std::unique_ptr< FrontendAction > ToolAction, const Twine &Code, const std::vector< std::string > &Args, const Twine &FileName="input.cc", const Twine &ToolName="clang-tool", std::shared_ptr< PCHContainerOperations > PCHContainerOps=std::make_shared< PCHContainerOperations >(), const FileContentMappings &VirtualMappedFiles=FileContentMappings()) |
| Runs (and deletes) the tool on 'Code' with the -fsyntax-only flag and with additional other flags. | |
| llvm::Expected< std::string > | clang::tooling::getAbsolutePath (llvm::vfs::FileSystem &FS, StringRef File) |
An overload of getAbsolutePath that works over the provided FS. | |
| std::string | clang::tooling::getAbsolutePath (StringRef File) |
Returns the absolute path of File, by prepending it with the current directory if File is not absolute. | |
| void | clang::tooling::addTargetAndModeForProgramName (std::vector< std::string > &CommandLine, StringRef InvokedAs) |
| Changes CommandLine to contain implicit flags that would have been defined had the compiler driver been invoked through the path InvokedAs. | |
| void | clang::tooling::addExpandedResponseFiles (std::vector< std::string > &CommandLine, llvm::StringRef WorkingDir, llvm::cl::TokenizerCallback Tokenizer, llvm::vfs::FileSystem &FS) |
| Helper function that expands response files in command line. | |
| static void | injectResourceDir (CommandLineArguments &Args, const char *Argv0, void *MainAddr) |
| std::unique_ptr< ASTUnit > | clang::tooling::buildASTFromCode (StringRef Code, StringRef FileName="input.cc", std::shared_ptr< PCHContainerOperations > PCHContainerOps=std::make_shared< PCHContainerOperations >()) |
| Builds an AST for 'Code'. | |
| std::unique_ptr< ASTUnit > | clang::tooling::buildASTFromCodeWithArgs (StringRef Code, const std::vector< std::string > &Args, StringRef FileName="input.cc", StringRef ToolName="clang-tool", std::shared_ptr< PCHContainerOperations > PCHContainerOps=std::make_shared< PCHContainerOperations >(), ArgumentsAdjuster Adjuster=getClangStripDependencyFileAdjuster(), const FileContentMappings &VirtualMappedFiles=FileContentMappings(), DiagnosticConsumer *DiagConsumer=nullptr, IntrusiveRefCntPtr< llvm::vfs::FileSystem > BaseFS=llvm::vfs::getRealFileSystem(), CaptureDiagsKind CaptureKind=CaptureDiagsKind::None) |
| Builds an AST for 'Code' with additional flags. | |
| #define DEBUG_TYPE "clang-tooling" |
Definition at line 60 of file Tooling.cpp.
|
static |
Definition at line 192 of file Tooling.cpp.
References clang::FileName.
Referenced by clang::tooling::buildASTFromCodeWithArgs(), and clang::tooling::runToolOnCodeWithArgs().
|
static |
Decide whether extra compiler frontend commands can be ignored.
Definition at line 85 of file Tooling.cpp.
References clang::driver::Compilation::getActions(), clang::driver::Compilation::getJobs(), clang::isa(), and clang::driver::JobList::size().
Referenced by clang::tooling::getCC1Arguments().
|
static |
Definition at line 504 of file Tooling.cpp.
References clang::tooling::getInsertArgumentAdjuster(), and clang::CompilerInvocation::GetResourcesPath().
Referenced by clang::tooling::ClangTool::run().
|
static |
Builds a clang driver initialized for running clang tools.
Definition at line 75 of file Tooling.cpp.
References clang::driver::Driver::setTitle().
Referenced by clang::tooling::ToolInvocation::run().