clang
6.0.0
|
#include "clang/Frontend/CompilerInstance.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/MemoryBufferCache.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/Version.h"
#include "clang/Config/config.h"
#include "clang/Frontend/ChainedDiagnosticConsumer.h"
#include "clang/Frontend/FrontendAction.h"
#include "clang/Frontend/FrontendActions.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/LogDiagnosticPrinter.h"
#include "clang/Frontend/SerializedDiagnosticPrinter.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
#include "clang/Frontend/VerifyDiagnosticConsumer.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/PTHManager.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Lex/PreprocessorOptions.h"
#include "clang/Sema/CodeCompleteConsumer.h"
#include "clang/Sema/Sema.h"
#include "clang/Serialization/ASTReader.h"
#include "clang/Serialization/GlobalModuleIndex.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/CrashRecoveryContext.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/LockFileManager.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/Signals.h"
#include "llvm/Support/Timer.h"
#include "llvm/Support/raw_ostream.h"
#include <sys/stat.h>
#include <system_error>
#include <time.h>
#include <utility>
Go to the source code of this file.
Functions | |
static void | collectHeaderMaps (const HeaderSearch &HS, std::shared_ptr< ModuleDependencyCollector > MDC) |
static void | collectIncludePCH (CompilerInstance &CI, std::shared_ptr< ModuleDependencyCollector > MDC) |
static void | collectVFSEntries (CompilerInstance &CI, std::shared_ptr< ModuleDependencyCollector > MDC) |
static void | SetUpDiagnosticLog (DiagnosticOptions *DiagOpts, const CodeGenOptions *CodeGenOpts, DiagnosticsEngine &Diags) |
static void | SetupSerializedDiagnostics (DiagnosticOptions *DiagOpts, DiagnosticsEngine &Diags, StringRef OutputFile) |
static void | InitializeFileRemapping (DiagnosticsEngine &Diags, SourceManager &SourceMgr, FileManager &FileMgr, const PreprocessorOptions &InitOpts) |
static bool | EnableCodeCompletion (Preprocessor &PP, StringRef Filename, unsigned Line, unsigned Column) |
static InputKind::Language | getLanguageFromOptions (const LangOptions &LangOpts) |
Determine the appropriate source input kind based on language options. More... | |
static bool | compileModuleImpl (CompilerInstance &ImportingInstance, SourceLocation ImportLoc, StringRef ModuleName, FrontendInputFile Input, StringRef OriginalModuleMapFile, StringRef ModuleFileName, llvm::function_ref< void(CompilerInstance &)> PreBuildStep=[](CompilerInstance &) {}, llvm::function_ref< void(CompilerInstance &)> PostBuildStep=[](CompilerInstance &) {}) |
Compile a module file for the given module, using the options provided by the importing compiler instance. More... | |
static bool | compileModuleImpl (CompilerInstance &ImportingInstance, SourceLocation ImportLoc, Module *Module, StringRef ModuleFileName) |
Compile a module file for the given module, using the options provided by the importing compiler instance. More... | |
static bool | compileAndLoadModule (CompilerInstance &ImportingInstance, SourceLocation ImportLoc, SourceLocation ModuleNameLoc, Module *Module, StringRef ModuleFileName) |
static void | checkConfigMacro (Preprocessor &PP, StringRef ConfigMacro, Module *Mod, SourceLocation ImportLoc) |
Diagnose differences between the current definition of the given configuration macro and the definition provided on the command line. More... | |
static void | writeTimestampFile (StringRef TimestampFile) |
Write a new timestamp file with the given path. More... | |
static void | pruneModuleCache (const HeaderSearchOptions &HSOpts) |
Prune the module cache of modules that haven't been accessed in a long time. More... | |
|
static |
Diagnose differences between the current definition of the given configuration macro and the definition provided on the command line.
Definition at line 1333 of file CompilerInstance.cpp.
References clang::Preprocessor::Diag(), clang::SourceManager::getFileID(), clang::Module::getFullModuleName(), clang::Preprocessor::getIdentifierInfo(), clang::Preprocessor::getLocalMacroDirectiveHistory(), clang::Preprocessor::getMacroInfo(), clang::Preprocessor::getPredefinesFileID(), clang::Preprocessor::getSourceManager(), clang::IdentifierInfo::hadMacroDefinition(), Id, and clang::FileID::isInvalid().
|
static |
Definition at line 154 of file CompilerInstance.cpp.
References clang::HeaderSearch::getHeaderMapFileNames().
Referenced by clang::CompilerInstance::createPreprocessor().
|
static |
Definition at line 162 of file CompilerInstance.cpp.
References clang::FileManager::getDirectory(), clang::CompilerInstance::getFileManager(), clang::DirectoryEntry::getName(), clang::CompilerInstance::getPCHContainerReader(), clang::CompilerInstance::getPreprocessor(), clang::CompilerInstance::getPreprocessorOpts(), clang::FileManager::getVirtualFileSystem(), clang::PreprocessorOptions::ImplicitPCHInclude, clang::vfs::directory_iterator::increment(), and clang::ASTReader::readASTFileControlBlock().
Referenced by clang::CompilerInstance::createPreprocessor().
|
static |
Definition at line 194 of file CompilerInstance.cpp.
References clang::CompilerInstance::getHeaderSearchOpts(), and clang::HeaderSearchOptions::VFSOverlayFiles.
Referenced by clang::CompilerInstance::createPreprocessor().
|
static |
Definition at line 1248 of file CompilerInstance.cpp.
References clang::ASTReader::ARR_Missing, clang::ASTReader::ARR_OutOfDate, compileModuleImpl(), clang::CompilerInstance::getDiagnostics(), clang::CompilerInstance::getModuleManager(), clang::DiagnosticsEngine::hasErrorOccurred(), clang::ASTReader::Missing, clang::serialization::MK_ImplicitModule, clang::Module::Name, clang::ASTReader::OutOfDate, clang::DiagnosticsEngine::Report(), and clang::ASTReader::Success.
Referenced by clang::CompilerInstance::loadModule().
|
static |
Compile a module file for the given module, using the options provided by the importing compiler instance.
Returns true if the module was built without errors.
Definition at line 1063 of file CompilerInstance.cpp.
Referenced by compileAndLoadModule(), and compileModuleImpl().
|
static |
Compile a module file for the given module, using the options provided by the importing compiler instance.
Returns true if the module was built without errors.
Definition at line 1192 of file CompilerInstance.cpp.
References compileModuleImpl(), clang::Module::Directory, clang::FrontendOptions::GenerateGlobalModuleIndex, clang::ModuleMap::getContainingModuleMapFile(), clang::CompilerInstance::getFrontendOpts(), clang::Preprocessor::getHeaderSearchInfo(), clang::CompilerInstance::getLangOpts(), getLanguageFromOptions(), clang::HeaderSearch::getModuleMap(), clang::ModuleMap::getModuleMapFileForUniquing(), clang::DirectoryEntry::getName(), clang::FileEntry::getName(), clang::CompilerInstance::getPreprocessor(), clang::Module::getTopLevelModuleName(), clang::Module::IsSystem, clang::InputKind::ModuleMap, clang::Module::print(), clang::Result, and clang::CompilerInstance::setBuildGlobalModuleIndex().
|
static |
Definition at line 573 of file CompilerInstance.cpp.
References Filename, clang::Preprocessor::getDiagnostics(), clang::FileManager::getFile(), clang::Preprocessor::getFileManager(), clang::DiagnosticsEngine::Report(), and clang::Preprocessor::SetCodeCompletionPoint().
Referenced by clang::CompilerInstance::createCodeCompletionConsumer().
|
static |
Determine the appropriate source input kind based on language options.
Definition at line 1049 of file CompilerInstance.cpp.
References clang::InputKind::C, clang::InputKind::CUDA, clang::InputKind::CXX, clang::InputKind::ObjC, clang::InputKind::ObjCXX, and clang::InputKind::OpenCL.
Referenced by compileModuleImpl().
|
static |
Definition at line 323 of file CompilerInstance.cpp.
References clang::FileManager::getFile(), clang::FileEntry::getSize(), clang::FileManager::getVirtualFile(), clang::SourceManager::overrideFileContents(), clang::PreprocessorOptions::RemappedFileBuffers, clang::PreprocessorOptions::RemappedFiles, clang::PreprocessorOptions::RemappedFilesKeepOriginalName, clang::DiagnosticsEngine::Report(), clang::PreprocessorOptions::RetainRemappedFileBuffers, and clang::SourceManager::setOverridenFilesKeepOriginalName().
Referenced by clang::CompilerInstance::createPreprocessor().
|
static |
Prune the module cache of modules that haven't been accessed in a long time.
Definition at line 1397 of file CompilerInstance.cpp.
References clang::HeaderSearchOptions::ModuleCachePath, clang::HeaderSearchOptions::ModuleCachePruneAfter, clang::HeaderSearchOptions::ModuleCachePruneInterval, and writeTimestampFile().
Referenced by clang::CompilerInstance::createModuleManager().
|
static |
Definition at line 215 of file CompilerInstance.cpp.
References clang::DiagnosticOptions::DiagnosticLogFile, clang::CodeGenOptions::DwarfDebugFlags, clang::DiagnosticsEngine::ownsClient(), clang::DiagnosticsEngine::Report(), clang::DiagnosticsEngine::setClient(), and clang::DiagnosticsEngine::takeClient().
Referenced by clang::CompilerInstance::createDiagnostics().
|
static |
Definition at line 246 of file CompilerInstance.cpp.
References clang::serialized_diags::create(), clang::DiagnosticsEngine::getClient(), clang::DiagnosticsEngine::ownsClient(), clang::DiagnosticsEngine::setClient(), and clang::DiagnosticsEngine::takeClient().
Referenced by clang::CompilerInstance::createDiagnostics().
|
static |
Write a new timestamp file with the given path.
Definition at line 1390 of file CompilerInstance.cpp.
Referenced by pruneModuleCache().