diff options
author | Ben Langmuir <blangmuir@apple.com> | 2014-04-15 18:16:25 +0000 |
---|---|---|
committer | Ben Langmuir <blangmuir@apple.com> | 2014-04-15 18:16:25 +0000 |
commit | 8832c066a23eb7df33b025bcf7e8fe7199ad3aae (patch) | |
tree | 923753afcf173f06cba5d014e2e8e1b51dda2b5d /clang/tools/libclang/CIndexCodeCompletion.cpp | |
parent | be4fe32eb8ad20e47fecf7e85e57c7e522ec5143 (diff) | |
download | bcm5719-llvm-8832c066a23eb7df33b025bcf7e8fe7199ad3aae.tar.gz bcm5719-llvm-8832c066a23eb7df33b025bcf7e8fe7199ad3aae.zip |
Honour -ivfsoverlay in ASTUnit to match clang
This allows code indexing, etc. to use the VFS in the same way as the
compiler.
llvm-svn: 206309
Diffstat (limited to 'clang/tools/libclang/CIndexCodeCompletion.cpp')
-rw-r--r-- | clang/tools/libclang/CIndexCodeCompletion.cpp | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/clang/tools/libclang/CIndexCodeCompletion.cpp b/clang/tools/libclang/CIndexCodeCompletion.cpp index 591294599dc..23fdf93b76f 100644 --- a/clang/tools/libclang/CIndexCodeCompletion.cpp +++ b/clang/tools/libclang/CIndexCodeCompletion.cpp @@ -249,7 +249,7 @@ namespace { /// AllocatedCXCodeCompleteResults outlives the CXTranslationUnit, so we can /// not rely on the StringPool in the TU. struct AllocatedCXCodeCompleteResults : public CXCodeCompleteResults { - AllocatedCXCodeCompleteResults(const FileSystemOptions& FileSystemOpts); + AllocatedCXCodeCompleteResults(IntrusiveRefCntPtr<FileManager> FileMgr); ~AllocatedCXCodeCompleteResults(); /// \brief Diagnostics produced while performing code completion. @@ -263,8 +263,6 @@ struct AllocatedCXCodeCompleteResults : public CXCodeCompleteResults { /// \brief Language options used to adjust source locations. LangOptions LangOpts; - FileSystemOptions FileSystemOpts; - /// \brief File manager, used for diagnostics. IntrusiveRefCntPtr<FileManager> FileMgr; @@ -318,20 +316,15 @@ struct AllocatedCXCodeCompleteResults : public CXCodeCompleteResults { static std::atomic<unsigned> CodeCompletionResultObjects; AllocatedCXCodeCompleteResults::AllocatedCXCodeCompleteResults( - const FileSystemOptions& FileSystemOpts) - : CXCodeCompleteResults(), - DiagOpts(new DiagnosticOptions), - Diag(new DiagnosticsEngine( - IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), - &*DiagOpts)), - FileSystemOpts(FileSystemOpts), - FileMgr(new FileManager(FileSystemOpts)), - SourceMgr(new SourceManager(*Diag, *FileMgr)), - CodeCompletionAllocator(new clang::GlobalCodeCompletionAllocator), - Contexts(CXCompletionContext_Unknown), - ContainerKind(CXCursor_InvalidCode), - ContainerIsIncomplete(1) -{ + IntrusiveRefCntPtr<FileManager> FileMgr) + : CXCodeCompleteResults(), + DiagOpts(new DiagnosticOptions), + Diag(new DiagnosticsEngine( + IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), &*DiagOpts)), + FileMgr(FileMgr), SourceMgr(new SourceManager(*Diag, *FileMgr)), + CodeCompletionAllocator(new clang::GlobalCodeCompletionAllocator), + Contexts(CXCompletionContext_Unknown), + ContainerKind(CXCursor_InvalidCode), ContainerIsIncomplete(1) { if (getenv("LIBCLANG_OBJTRACKING")) fprintf(stderr, "+++ %u completion results\n", ++CodeCompletionResultObjects); @@ -709,8 +702,8 @@ void clang_codeCompleteAt_Impl(void *UserData) { } // Parse the resulting source file to find code-completion results. - AllocatedCXCodeCompleteResults *Results = - new AllocatedCXCodeCompleteResults(AST->getFileSystemOpts()); + AllocatedCXCodeCompleteResults *Results = new AllocatedCXCodeCompleteResults( + &AST->getFileManager()); Results->Results = 0; Results->NumResults = 0; |