clang API Documentation
Utility class for loading a ASTContext from an AST file. More...
#include <ASTUnit.h>


Classes | |
| struct | CachedCodeCompletionResult |
| A cached code-completion result, which may be introduced in one of many different contexts. More... | |
| class | ConcurrencyCheck |
| class | ConcurrencyState |
| Allows us to assert that ASTUnit is not being used concurrently, which is not supported. | |
| class | PreambleData |
Public Types | |
| typedef std::vector< Decl * > ::iterator | top_level_iterator |
| typedef StoredDiagnostic * | stored_diag_iterator |
| typedef const StoredDiagnostic * | stored_diag_const_iterator |
| typedef std::vector < CachedCodeCompletionResult > ::iterator | cached_completion_iterator |
| typedef llvm::PointerUnion < const char *, const llvm::MemoryBuffer * > | FilenameOrMemBuf |
| typedef std::pair< std::string, FilenameOrMemBuf > | RemappedFile |
| A mapping from a file name to the memory buffer that stores the remapped contents of that file. | |
Public Member Functions | |
| const PreambleData & | getPreambleData () const |
| llvm::StringMap< unsigned > & | getCachedCompletionTypes () |
| Retrieve the mapping from formatted type names to unique type identifiers. | |
| IntrusiveRefCntPtr < GlobalCodeCompletionAllocator > | getCachedCompletionAllocator () |
| Retrieve the allocator used to cache global code completions. | |
| CodeCompletionTUInfo & | getCodeCompletionTUInfo () |
| ~ASTUnit () | |
| bool | isMainFileAST () const |
| bool | isUnsafeToFree () const |
| void | setUnsafeToFree (bool Value) |
| const DiagnosticsEngine & | getDiagnostics () const |
| DiagnosticsEngine & | getDiagnostics () |
| const SourceManager & | getSourceManager () const |
| SourceManager & | getSourceManager () |
| const Preprocessor & | getPreprocessor () const |
| Preprocessor & | getPreprocessor () |
| const ASTContext & | getASTContext () const |
| ASTContext & | getASTContext () |
| void | setASTContext (ASTContext *ctx) |
| void | setPreprocessor (Preprocessor *pp) |
| bool | hasSema () const |
| Sema & | getSema () const |
| const FileManager & | getFileManager () const |
| FileManager & | getFileManager () |
| const FileSystemOptions & | getFileSystemOpts () const |
| const std::string & | getOriginalSourceFileName () |
| void | addTemporaryFile (const llvm::sys::Path &TempFile) |
| Add a temporary file that the ASTUnit depends on. | |
| bool | getOnlyLocalDecls () const |
| bool | getOwnsRemappedFileBuffers () const |
| void | setOwnsRemappedFileBuffers (bool val) |
| StringRef | getMainFileName () const |
| top_level_iterator | top_level_begin () |
| top_level_iterator | top_level_end () |
| std::size_t | top_level_size () const |
| bool | top_level_empty () const |
| void | addTopLevelDecl (Decl *D) |
| Add a new top-level declaration. | |
| void | addFileLevelDecl (Decl *D) |
| Add a new local file-level declaration. | |
| void | findFileRegionDecls (FileID File, unsigned Offset, unsigned Length, SmallVectorImpl< Decl * > &Decls) |
| Get the decls that are contained in a file in the Offset/Length range. | |
| void | addTopLevelDeclFromPreamble (serialization::DeclID D) |
| Add a new top-level declaration, identified by its ID in the precompiled preamble. | |
| unsigned & | getCurrentTopLevelHashValue () |
| Retrieve a reference to the current top-level name hash value. | |
| SourceLocation | getLocation (const FileEntry *File, unsigned Line, unsigned Col) const |
| Get the source location for the given file:line:col triplet. | |
| SourceLocation | getLocation (const FileEntry *File, unsigned Offset) const |
| Get the source location for the given file:offset pair. | |
| SourceLocation | mapLocationFromPreamble (SourceLocation Loc) |
| If. | |
| SourceLocation | mapLocationToPreamble (SourceLocation Loc) |
| If. | |
| bool | isInPreambleFileID (SourceLocation Loc) |
| bool | isInMainFileID (SourceLocation Loc) |
| SourceLocation | getStartOfMainFileID () |
| SourceLocation | getEndOfPreambleFileID () |
| SourceRange | mapRangeFromPreamble (SourceRange R) |
| SourceRange | mapRangeToPreamble (SourceRange R) |
| stored_diag_const_iterator | stored_diag_begin () const |
| stored_diag_iterator | stored_diag_begin () |
| stored_diag_const_iterator | stored_diag_end () const |
| stored_diag_iterator | stored_diag_end () |
| unsigned | stored_diag_size () const |
| stored_diag_iterator | stored_diag_afterDriver_begin () |
| cached_completion_iterator | cached_completion_begin () |
| cached_completion_iterator | cached_completion_end () |
| unsigned | cached_completion_size () const |
| llvm::MemoryBuffer * | getBufferForFile (StringRef Filename, std::string *ErrorStr=0) |
| TranslationUnitKind | getTranslationUnitKind () const |
| Determine what kind of translation unit this AST represents. | |
| bool | Reparse (RemappedFile *RemappedFiles=0, unsigned NumRemappedFiles=0) |
| Reparse the source files using the same command-line options that were originally used to produce this translation unit. | |
| void | CodeComplete (StringRef File, unsigned Line, unsigned Column, RemappedFile *RemappedFiles, unsigned NumRemappedFiles, bool IncludeMacros, bool IncludeCodePatterns, CodeCompleteConsumer &Consumer, DiagnosticsEngine &Diag, LangOptions &LangOpts, SourceManager &SourceMgr, FileManager &FileMgr, SmallVectorImpl< StoredDiagnostic > &StoredDiagnostics, SmallVectorImpl< const llvm::MemoryBuffer * > &OwnedBuffers) |
| Perform code completion at the given file, line, and column within this translation unit. | |
| CXSaveError | Save (StringRef File) |
| Save this translation unit to a file with the given name. | |
| bool | serialize (raw_ostream &OS) |
| Serialize this translation unit with the given output stream. | |
| virtual Module * | loadModule (SourceLocation ImportLoc, ModuleIdPath Path, Module::NameVisibilityKind Visibility, bool IsInclusionDirective) |
| Attempt to load the given module. | |
Static Public Member Functions | |
| static ASTUnit * | create (CompilerInvocation *CI, IntrusiveRefCntPtr< DiagnosticsEngine > Diags, bool CaptureDiagnostics=false) |
| Create a ASTUnit. Gets ownership of the passed CompilerInvocation. | |
| static ASTUnit * | LoadFromASTFile (const std::string &Filename, IntrusiveRefCntPtr< DiagnosticsEngine > Diags, const FileSystemOptions &FileSystemOpts, bool OnlyLocalDecls=false, RemappedFile *RemappedFiles=0, unsigned NumRemappedFiles=0, bool CaptureDiagnostics=false, bool AllowPCHWithCompilerErrors=false) |
| Create a ASTUnit from an AST file. | |
| static ASTUnit * | LoadFromCompilerInvocationAction (CompilerInvocation *CI, IntrusiveRefCntPtr< DiagnosticsEngine > Diags, ASTFrontendAction *Action=0, ASTUnit *Unit=0, bool Persistent=true, StringRef ResourceFilesPath=StringRef(), bool OnlyLocalDecls=false, bool CaptureDiagnostics=false, bool PrecompilePreamble=false, bool CacheCodeCompletionResults=false, OwningPtr< ASTUnit > *ErrAST=0) |
| Create an ASTUnit from a source file, via a CompilerInvocation object, by invoking the optionally provided ASTFrontendAction. | |
| static ASTUnit * | LoadFromCompilerInvocation (CompilerInvocation *CI, IntrusiveRefCntPtr< DiagnosticsEngine > Diags, bool OnlyLocalDecls=false, bool CaptureDiagnostics=false, bool PrecompilePreamble=false, TranslationUnitKind TUKind=TU_Complete, bool CacheCodeCompletionResults=false) |
| static ASTUnit * | LoadFromCommandLine (const char **ArgBegin, const char **ArgEnd, IntrusiveRefCntPtr< DiagnosticsEngine > Diags, StringRef ResourceFilesPath, bool OnlyLocalDecls=false, bool CaptureDiagnostics=false, RemappedFile *RemappedFiles=0, unsigned NumRemappedFiles=0, bool RemappedFilesKeepOriginalName=true, bool PrecompilePreamble=false, TranslationUnitKind TUKind=TU_Complete, bool CacheCodeCompletionResults=false, bool AllowPCHWithCompilerErrors=false, bool SkipFunctionBodies=false, OwningPtr< ASTUnit > *ErrAST=0) |
Friends | |
| class | ConcurrencyCheck |
Utility class for loading a ASTContext from an AST file.
| typedef std::vector<CachedCodeCompletionResult>::iterator clang::ASTUnit::cached_completion_iterator |
| typedef llvm::PointerUnion<const char *, const llvm::MemoryBuffer *> clang::ASTUnit::FilenameOrMemBuf |
| typedef std::pair<std::string, FilenameOrMemBuf> clang::ASTUnit::RemappedFile |
| typedef const StoredDiagnostic* clang::ASTUnit::stored_diag_const_iterator |
| typedef std::vector<Decl *>::iterator clang::ASTUnit::top_level_iterator |
| ASTUnit::~ASTUnit | ( | ) |
Definition at line 227 of file ASTUnit.cpp.
References ActiveASTUnitObjects, clang::PreprocessorOptions::remapped_file_buffer_begin(), clang::PreprocessorOptions::remapped_file_buffer_end(), and removeOnDiskEntry().
| void ASTUnit::addFileLevelDecl | ( | Decl * | D | ) |
Add a new local file-level declaration.
Definition at line 2546 of file ASTUnit.cpp.
References compLocDecl(), clang::SourceManager::getDecomposedLoc(), clang::SourceManager::getFileLoc(), clang::Decl::getLexicalDeclContext(), clang::Decl::getLocation(), clang::DeclContext::isFileContext(), clang::Decl::isFromASTFile(), clang::SourceLocation::isInvalid(), and clang::SourceManager::isLocalSourceLocation().
| void ASTUnit::addTemporaryFile | ( | const llvm::sys::Path & | TempFile | ) |
Add a temporary file that the ASTUnit depends on.
This file will be erased when the ASTUnit is destroyed.
Definition at line 193 of file ASTUnit.cpp.
References getOnDiskData().
| void clang::ASTUnit::addTopLevelDecl | ( | Decl * | D | ) | [inline] |
Add a new top-level declaration.
| void clang::ASTUnit::addTopLevelDeclFromPreamble | ( | serialization::DeclID | D | ) | [inline] |
Add a new top-level declaration, identified by its ID in the precompiled preamble.
| cached_completion_iterator clang::ASTUnit::cached_completion_begin | ( | ) | [inline] |
| cached_completion_iterator clang::ASTUnit::cached_completion_end | ( | ) | [inline] |
| unsigned clang::ASTUnit::cached_completion_size | ( | ) | const [inline] |
| void ASTUnit::CodeComplete | ( | StringRef | File, |
| unsigned | Line, | ||
| unsigned | Column, | ||
| RemappedFile * | RemappedFiles, | ||
| unsigned | NumRemappedFiles, | ||
| bool | IncludeMacros, | ||
| bool | IncludeCodePatterns, | ||
| CodeCompleteConsumer & | Consumer, | ||
| DiagnosticsEngine & | Diag, | ||
| LangOptions & | LangOpts, | ||
| SourceManager & | SourceMgr, | ||
| FileManager & | FileMgr, | ||
| SmallVectorImpl< StoredDiagnostic > & | StoredDiagnostics, | ||
| SmallVectorImpl< const llvm::MemoryBuffer * > & | OwnedBuffers | ||
| ) |
Perform code completion at the given file, line, and column within this translation unit.
| File | The file in which code completion will occur. |
| Line | The line at which code completion will occur. |
| Column | The column at which code completion will occur. |
| IncludeMacros | Whether to include macros in the code-completion results. |
| IncludeCodePatterns | Whether to include code patterns (such as a for loop) in the code-completion results. |
FIXME: The Diag, LangOpts, SourceMgr, FileMgr, StoredDiagnostics, and OwnedBuffers parameters are all disgusting hacks. They will go away.
Definition at line 2265 of file ASTUnit.cpp.
References clang::PreprocessorOptions::addRemappedFile(), checkAndSanitizeDiags(), clang::PreprocessorOptions::clearRemappedFiles(), clang::FrontendOptions::CodeCompletionAt, clang::ParsedSourceLocation::Column, clang::TargetInfo::CreateTargetInfo(), clang::PreprocessorOptions::DetailedRecord, clang::PreprocessorOptions::DisablePCHValidation, clang::PreprocessorOptions::DisableStatCache, clang::ParsedSourceLocation::FileName, getPreambleFile(), getSourceManager(), clang::IK_AST, clang::IK_LLVM_IR, clang::PreprocessorOptions::ImplicitPCHInclude, clang::ParsedSourceLocation::Line, clang::PreprocessorOptions::PrecompiledPreambleBytes, clang::ProcessWarningOptions(), clang::PreprocessorOptions::RetainRemappedFileBuffers, clang::FrontendOptions::ShowCodePatternsInCodeCompletion, clang::FrontendOptions::ShowGlobalSymbolsInCodeCompletion, clang::FrontendOptions::ShowMacrosInCodeCompletion, clang::ASTUnit::PreambleData::size(), stored_diag_afterDriver_begin(), and stored_diag_begin().
| ASTUnit * ASTUnit::create | ( | CompilerInvocation * | CI, |
| IntrusiveRefCntPtr< DiagnosticsEngine > | Diags, | ||
| bool | CaptureDiagnostics = false |
||
| ) | [static] |
Create a ASTUnit. Gets ownership of the passed CompilerInvocation.
Definition at line 1660 of file ASTUnit.cpp.
References clang::CompilerInvocation::getFileSystemOpts().
Referenced by LoadFromCompilerInvocationAction().
| void ASTUnit::findFileRegionDecls | ( | FileID | File, |
| unsigned | Offset, | ||
| unsigned | Length, | ||
| SmallVectorImpl< Decl * > & | Decls | ||
| ) |
Get the decls that are contained in a file in the Offset/Length range.
Definition at line 2587 of file ASTUnit.cpp.
References compLocDecl(), clang::ExternalASTSource::FindFileRegionDecls(), clang::ASTContext::getExternalSource(), clang::FileID::isInvalid(), and clang::SourceManager::isLoadedFileID().
| const ASTContext& clang::ASTUnit::getASTContext | ( | ) | const [inline] |
Definition at line 442 of file ASTUnit.h.
Referenced by clang::FrontendAction::BeginSourceFile(), and clang::ASTMergeAction::ExecuteAction().
| ASTContext& clang::ASTUnit::getASTContext | ( | ) | [inline] |
| llvm::MemoryBuffer * ASTUnit::getBufferForFile | ( | StringRef | Filename, |
| std::string * | ErrorStr = 0 |
||
| ) |
Definition at line 623 of file ASTUnit.cpp.
References clang::FileManager::getBufferForFile().
| IntrusiveRefCntPtr<GlobalCodeCompletionAllocator> clang::ASTUnit::getCachedCompletionAllocator | ( | ) | [inline] |
| llvm::StringMap<unsigned>& clang::ASTUnit::getCachedCompletionTypes | ( | ) | [inline] |
| CodeCompletionTUInfo& clang::ASTUnit::getCodeCompletionTUInfo | ( | ) | [inline] |
| unsigned& clang::ASTUnit::getCurrentTopLevelHashValue | ( | ) | [inline] |
Retrieve a reference to the current top-level name hash value.
Note: This is used internally by the top-level tracking action
Definition at line 522 of file ASTUnit.h.
Referenced by LoadFromCompilerInvocationAction().
| const DiagnosticsEngine& clang::ASTUnit::getDiagnostics | ( | ) | const [inline] |
Definition at line 433 of file ASTUnit.h.
Referenced by LoadFromCompilerInvocationAction(), Reparse(), and serialize().
| DiagnosticsEngine& clang::ASTUnit::getDiagnostics | ( | ) | [inline] |
| SourceLocation ASTUnit::getEndOfPreambleFileID | ( | ) |
Definition at line 2708 of file ASTUnit.cpp.
References clang::SourceManager::getLocForEndOfFile(), clang::SourceManager::getPreambleFileID(), and clang::FileID::isInvalid().
| const FileManager& clang::ASTUnit::getFileManager | ( | ) | const [inline] |
Definition at line 454 of file ASTUnit.h.
Referenced by clang::FrontendAction::BeginSourceFile(), clang::ASTMergeAction::ExecuteAction(), and LoadFromCompilerInvocationAction().
| FileManager& clang::ASTUnit::getFileManager | ( | ) | [inline] |
| const FileSystemOptions& clang::ASTUnit::getFileSystemOpts | ( | ) | const [inline] |
| SourceLocation ASTUnit::getLocation | ( | const FileEntry * | File, |
| unsigned | Line, | ||
| unsigned | Col | ||
| ) | const |
Get the source location for the given file:line:col triplet.
The difference with SourceManager::getLocation is that this method checks whether the requested location points inside the precompiled preamble in which case the returned source location will be a "loaded" one.
Definition at line 2630 of file ASTUnit.cpp.
References clang::SourceManager::getMacroArgExpandedLocation(), getSourceManager(), and clang::SourceManager::translateFileLineCol().
| SourceLocation ASTUnit::getLocation | ( | const FileEntry * | File, |
| unsigned | Offset | ||
| ) | const |
Get the source location for the given file:offset pair.
Definition at line 2637 of file ASTUnit.cpp.
References clang::SourceLocation::getLocWithOffset(), clang::SourceManager::getMacroArgExpandedLocation(), getSourceManager(), and clang::SourceManager::translateFileLineCol().
| StringRef ASTUnit::getMainFileName | ( | ) | const |
Definition at line 1656 of file ASTUnit.cpp.
References clang::CompilerInvocation::getFrontendOpts(), and clang::FrontendOptions::Inputs.
Referenced by Reparse().
| const std::string & ASTUnit::getOriginalSourceFileName | ( | ) |
Definition at line 619 of file ASTUnit.cpp.
| bool clang::ASTUnit::getOwnsRemappedFileBuffers | ( | ) | const [inline] |
| const PreambleData& clang::ASTUnit::getPreambleData | ( | ) | const [inline] |
| const Preprocessor& clang::ASTUnit::getPreprocessor | ( | ) | const [inline] |
Definition at line 439 of file ASTUnit.h.
Referenced by clang::FrontendAction::BeginSourceFile().
| Preprocessor& clang::ASTUnit::getPreprocessor | ( | ) | [inline] |
| Sema& clang::ASTUnit::getSema | ( | ) | const [inline] |
Definition at line 449 of file ASTUnit.h.
Referenced by serialize().
| const SourceManager& clang::ASTUnit::getSourceManager | ( | ) | const [inline] |
Definition at line 436 of file ASTUnit.h.
Referenced by clang::FrontendAction::BeginSourceFile(), CodeComplete(), getLocation(), and LoadFromCompilerInvocationAction().
| SourceManager& clang::ASTUnit::getSourceManager | ( | ) | [inline] |
| SourceLocation ASTUnit::getStartOfMainFileID | ( | ) |
Definition at line 2719 of file ASTUnit.cpp.
References clang::SourceManager::getLocForStartOfFile(), clang::SourceManager::getMainFileID(), and clang::FileID::isInvalid().
| TranslationUnitKind clang::ASTUnit::getTranslationUnitKind | ( | ) | const [inline] |
| bool ASTUnit::isInMainFileID | ( | SourceLocation | Loc | ) |
Definition at line 2697 of file ASTUnit.cpp.
References clang::SourceManager::getMainFileID(), clang::SourceManager::isInFileID(), clang::FileID::isInvalid(), and clang::SourceLocation::isInvalid().
| bool ASTUnit::isInPreambleFileID | ( | SourceLocation | Loc | ) |
Definition at line 2686 of file ASTUnit.cpp.
References clang::SourceManager::getPreambleFileID(), clang::SourceManager::isInFileID(), clang::FileID::isInvalid(), and clang::SourceLocation::isInvalid().
| bool clang::ASTUnit::isMainFileAST | ( | ) | const [inline] |
Definition at line 428 of file ASTUnit.h.
Referenced by top_level_begin(), top_level_empty(), top_level_end(), and top_level_size().
| ASTUnit * ASTUnit::LoadFromASTFile | ( | const std::string & | Filename, |
| IntrusiveRefCntPtr< DiagnosticsEngine > | Diags, | ||
| const FileSystemOptions & | FileSystemOpts, | ||
| bool | OnlyLocalDecls = false, |
||
| RemappedFile * | RemappedFiles = 0, |
||
| unsigned | NumRemappedFiles = 0, |
||
| bool | CaptureDiagnostics = false, |
||
| bool | AllowPCHWithCompilerErrors = false |
||
| ) | [static] |
Create a ASTUnit from an AST file.
| Filename | - The AST file to load. |
| Diags | - The diagnostics engine to use for reporting errors; its lifetime is expected to extend past that of the returned ASTUnit. |
Definition at line 649 of file ASTUnit.cpp.
References clang::ASTReader::Failure, clang::ASTReader::get(), clang::ASTReader::IgnorePCH, clang::ASTReader::InitializeSema(), clang::serialization::MK_MainFile, NULL, and clang::ASTReader::Success.
Referenced by clang::FrontendAction::BeginSourceFile(), and clang::ASTMergeAction::ExecuteAction().
| ASTUnit * ASTUnit::LoadFromCommandLine | ( | const char ** | ArgBegin, |
| const char ** | ArgEnd, | ||
| IntrusiveRefCntPtr< DiagnosticsEngine > | Diags, | ||
| StringRef | ResourceFilesPath, | ||
| bool | OnlyLocalDecls = false, |
||
| bool | CaptureDiagnostics = false, |
||
| RemappedFile * | RemappedFiles = 0, |
||
| unsigned | NumRemappedFiles = 0, |
||
| bool | RemappedFilesKeepOriginalName = true, |
||
| bool | PrecompilePreamble = false, |
||
| TranslationUnitKind | TUKind = TU_Complete, |
||
| bool | CacheCodeCompletionResults = false, |
||
| bool | AllowPCHWithCompilerErrors = false, |
||
| bool | SkipFunctionBodies = false, |
||
| OwningPtr< ASTUnit > * | ErrAST = 0 |
||
| ) | [static] |
LoadFromCommandLine - Create an ASTUnit from a vector of command line arguments, which must specify exactly one source file.
| ArgBegin | - The beginning of the argument vector. |
| ArgEnd | - The end of the argument vector. |
| Diags | - The diagnostics engine to use for reporting errors; its lifetime is expected to extend past that of the returned ASTUnit. |
| ResourceFilesPath | - The path to the compiler resource files. |
| ErrAST | - If non-null and parsing failed without any AST to return (e.g. because the PCH could not be loaded), this accepts the ASTUnit mainly to allow the caller to see the diagnostics. |
Definition at line 1868 of file ASTUnit.cpp.
References clang::PreprocessorOptions::AllowPCHWithCompilerErrors, clang::CompilerInstance::createDiagnostics(), clang::createInvocationFromCommandLine(), and clang::PreprocessorOptions::RemappedFilesKeepOriginalName.
| ASTUnit * ASTUnit::LoadFromCompilerInvocation | ( | CompilerInvocation * | CI, |
| IntrusiveRefCntPtr< DiagnosticsEngine > | Diags, | ||
| bool | OnlyLocalDecls = false, |
||
| bool | CaptureDiagnostics = false, |
||
| bool | PrecompilePreamble = false, |
||
| TranslationUnitKind | TUKind = TU_Complete, |
||
| bool | CacheCodeCompletionResults = false |
||
| ) | [static] |
LoadFromCompilerInvocation - Create an ASTUnit from a source file, via a CompilerInvocation object.
| CI | - The compiler invocation to use; it must have exactly one input source file. The ASTUnit takes ownership of the CompilerInvocation object. |
| Diags | - The diagnostics engine to use for reporting errors; its lifetime is expected to extend past that of the returned ASTUnit. |
Definition at line 1840 of file ASTUnit.cpp.
| ASTUnit * ASTUnit::LoadFromCompilerInvocationAction | ( | CompilerInvocation * | CI, |
| IntrusiveRefCntPtr< DiagnosticsEngine > | Diags, | ||
| ASTFrontendAction * | Action = 0, |
||
| ASTUnit * | Unit = 0, |
||
| bool | Persistent = true, |
||
| StringRef | ResourceFilesPath = StringRef(), |
||
| bool | OnlyLocalDecls = false, |
||
| bool | CaptureDiagnostics = false, |
||
| bool | PrecompilePreamble = false, |
||
| bool | CacheCodeCompletionResults = false, |
||
| OwningPtr< ASTUnit > * | ErrAST = 0 |
||
| ) | [static] |
Create an ASTUnit from a source file, via a CompilerInvocation object, by invoking the optionally provided ASTFrontendAction.
| CI | - The compiler invocation to use; it must have exactly one input source file. The ASTUnit takes ownership of the CompilerInvocation object. |
| Diags | - The diagnostics engine to use for reporting errors; its lifetime is expected to extend past that of the returned ASTUnit. |
| Action | - The ASTFrontendAction to invoke. Its ownership is not transfered. |
| Unit | - optionally an already created ASTUnit. Its ownership is not transfered. |
| Persistent | - if true the returned ASTUnit will be complete. false means the caller is only interested in getting info through the provided |
| ErrAST | - If non-null and parsing failed without any AST to return (e.g. because the PCH could not be loaded), this accepts the ASTUnit mainly to allow the caller to see the diagnostics. This will only receive an ASTUnit if a new one was created. If an already created ASTUnit was passed in |
| Unit | then the caller can check that. |
Definition at line 1675 of file ASTUnit.cpp.
References clang::FrontendAction::BeginSourceFile(), create(), clang::TargetInfo::CreateTargetInfo(), clang::FrontendOptions::DisableFree, clang::FrontendAction::EndSourceFile(), clang::FrontendAction::Execute(), clang::TargetOptions::Features, getCurrentTopLevelHashValue(), clang::CompilerInvocation::getDiagnosticOpts(), getDiagnostics(), getFileManager(), clang::CompilerInvocation::getFrontendOpts(), clang::CompilerInvocation::getHeaderSearchOpts(), clang::CompilerInvocation::getPreprocessorOpts(), getSourceManager(), clang::CompilerInvocation::getTargetOpts(), clang::FrontendAction::getTranslationUnitKind(), clang::IK_AST, clang::IK_LLVM_IR, clang::ProcessWarningOptions(), clang::HeaderSearchOptions::ResourceDir, clang::PreprocessorOptions::RetainRemappedFileBuffers, and clang::TU_Complete.
Referenced by clang::arcmt::MigrationProcess::applyTransform(), and clang::arcmt::checkForManualIssues().
| virtual Module* clang::ASTUnit::loadModule | ( | SourceLocation | ImportLoc, |
| ModuleIdPath | Path, | ||
| Module::NameVisibilityKind | Visibility, | ||
| bool | IsInclusionDirective | ||
| ) | [inline, virtual] |
Attempt to load the given module.
This routine attempts to load the module described by the given parameters.
| ImportLoc | The location of the 'import' keyword. |
| Path | The identifiers (and their locations) of the module "path", e.g., "std.vector" would be split into "std" and "vector". |
| Visibility | The visibility provided for the names in the loaded module. |
| IsInclusionDirective | Indicates that this module is being loaded implicitly, due to the presence of an inclusion directive. Otherwise, it is being loaded due to an import declaration. |
Implements clang::ModuleLoader.
| SourceLocation ASTUnit::mapLocationFromPreamble | ( | SourceLocation | Loc | ) |
If.
Definition at line 2647 of file ASTUnit.cpp.
References clang::ASTUnit::PreambleData::empty(), clang::SourceManager::getLocForStartOfFile(), clang::SourceLocation::getLocWithOffset(), clang::SourceManager::getMainFileID(), clang::SourceManager::getPreambleFileID(), clang::SourceManager::isInFileID(), clang::FileID::isInvalid(), clang::SourceLocation::isInvalid(), and clang::ASTUnit::PreambleData::size().
Referenced by mapRangeFromPreamble().
| SourceLocation ASTUnit::mapLocationToPreamble | ( | SourceLocation | Loc | ) |
If.
Definition at line 2668 of file ASTUnit.cpp.
References clang::ASTUnit::PreambleData::empty(), clang::SourceManager::getLocForStartOfFile(), clang::SourceLocation::getLocWithOffset(), clang::SourceManager::getMainFileID(), clang::SourceManager::getPreambleFileID(), clang::SourceManager::isInFileID(), clang::FileID::isInvalid(), clang::SourceLocation::isInvalid(), and clang::ASTUnit::PreambleData::size().
Referenced by mapRangeToPreamble().
| SourceRange clang::ASTUnit::mapRangeFromPreamble | ( | SourceRange | R | ) | [inline] |
Definition at line 551 of file ASTUnit.h.
References clang::SourceRange::getBegin(), clang::SourceRange::getEnd(), and mapLocationFromPreamble().
| SourceRange clang::ASTUnit::mapRangeToPreamble | ( | SourceRange | R | ) | [inline] |
Definition at line 557 of file ASTUnit.h.
References clang::SourceRange::getBegin(), clang::SourceRange::getEnd(), and mapLocationToPreamble().
| bool ASTUnit::Reparse | ( | RemappedFile * | RemappedFiles = 0, |
| unsigned | NumRemappedFiles = 0 |
||
| ) |
Reparse the source files using the same command-line options that were originally used to produce this translation unit.
Definition at line 1961 of file ASTUnit.cpp.
References clang::PreprocessorOptions::addRemappedFile(), clang::PreprocessorOptions::clearRemappedFiles(), clang::PreprocessorOptions::DisableStatCache, clang::CompilerInvocation::getDiagnosticOpts(), getDiagnostics(), getMainFileName(), getPreambleFile(), clang::CompilerInvocation::getPreprocessorOpts(), clang::ProcessWarningOptions(), clang::PreprocessorOptions::remapped_file_buffer_begin(), clang::PreprocessorOptions::remapped_file_buffer_end(), clang::DiagnosticsEngine::Reset(), and clang::DiagnosticsEngine::setNumWarnings().
| CXSaveError ASTUnit::Save | ( | StringRef | File | ) |
Save this translation unit to a file with the given name.
Definition at line 2426 of file ASTUnit.cpp.
References CXSaveError_None, CXSaveError_Unknown, and serialize().
| bool ASTUnit::serialize | ( | raw_ostream & | OS | ) |
Serialize this translation unit with the given output stream.
Definition at line 2457 of file ASTUnit.cpp.
References getDiagnostics(), getSema(), clang::DiagnosticsEngine::hasErrorOccurred(), and clang::ASTWriter::WriteAST().
Referenced by Save().
| void clang::ASTUnit::setASTContext | ( | ASTContext * | ctx | ) | [inline] |
| void clang::ASTUnit::setOwnsRemappedFileBuffers | ( | bool | val | ) | [inline] |
| void ASTUnit::setPreprocessor | ( | Preprocessor * | pp | ) |
Definition at line 258 of file ASTUnit.cpp.
| void clang::ASTUnit::setUnsafeToFree | ( | bool | Value | ) | [inline] |
| stored_diag_iterator clang::ASTUnit::stored_diag_afterDriver_begin | ( | ) | [inline] |
Definition at line 579 of file ASTUnit.h.
Referenced by CodeComplete().
| stored_diag_const_iterator clang::ASTUnit::stored_diag_begin | ( | ) | const [inline] |
Definition at line 565 of file ASTUnit.h.
Referenced by CodeComplete().
| stored_diag_iterator clang::ASTUnit::stored_diag_begin | ( | ) | [inline] |
| stored_diag_const_iterator clang::ASTUnit::stored_diag_end | ( | ) | const [inline] |
| stored_diag_iterator clang::ASTUnit::stored_diag_end | ( | ) | [inline] |
| unsigned clang::ASTUnit::stored_diag_size | ( | ) | const [inline] |
| top_level_iterator clang::ASTUnit::top_level_begin | ( | ) | [inline] |
Definition at line 475 of file ASTUnit.h.
References isMainFileAST().
| bool clang::ASTUnit::top_level_empty | ( | ) | const [inline] |
Definition at line 494 of file ASTUnit.h.
References isMainFileAST().
| top_level_iterator clang::ASTUnit::top_level_end | ( | ) | [inline] |
Definition at line 482 of file ASTUnit.h.
References isMainFileAST().
| std::size_t clang::ASTUnit::top_level_size | ( | ) | const [inline] |
Definition at line 489 of file ASTUnit.h.
References isMainFileAST().
friend class ConcurrencyCheck [friend] |