diff options
Diffstat (limited to 'clang/tools/libclang')
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 4 | ||||
-rw-r--r-- | clang/tools/libclang/CIndexCodeCompletion.cpp | 9 | ||||
-rw-r--r-- | clang/tools/libclang/CXIndexDataConsumer.cpp | 6 | ||||
-rw-r--r-- | clang/tools/libclang/CXIndexDataConsumer.h | 2 | ||||
-rw-r--r-- | clang/tools/libclang/Indexing.cpp | 7 |
5 files changed, 17 insertions, 11 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 9412d97..95cda67 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -2880,6 +2880,8 @@ void OpenACCClauseEnqueue::VisitTileClause(const OpenACCTileClause &C) { void OpenACCClauseEnqueue::VisitPrivateClause(const OpenACCPrivateClause &C) { VisitVarList(C); + for (VarDecl *V : C.getInitRecipes()) + Visitor.AddDecl(V); } void OpenACCClauseEnqueue::VisitHostClause(const OpenACCHostClause &C) { @@ -2893,6 +2895,8 @@ void OpenACCClauseEnqueue::VisitDeviceClause(const OpenACCDeviceClause &C) { void OpenACCClauseEnqueue::VisitFirstPrivateClause( const OpenACCFirstPrivateClause &C) { VisitVarList(C); + for (VarDecl *V : C.getInitRecipes()) + Visitor.AddDecl(V); } void OpenACCClauseEnqueue::VisitPresentClause(const OpenACCPresentClause &C) { diff --git a/clang/tools/libclang/CIndexCodeCompletion.cpp b/clang/tools/libclang/CIndexCodeCompletion.cpp index adac7c3..81448b4 100644 --- a/clang/tools/libclang/CIndexCodeCompletion.cpp +++ b/clang/tools/libclang/CIndexCodeCompletion.cpp @@ -360,7 +360,8 @@ AllocatedCXCodeCompleteResults::AllocatedCXCodeCompleteResults( Diag(llvm::makeIntrusiveRefCnt<DiagnosticsEngine>(DiagnosticIDs::create(), DiagOpts)), FileMgr(std::move(FileMgr)), - SourceMgr(new SourceManager(*Diag, *this->FileMgr)), + SourceMgr( + llvm::makeIntrusiveRefCnt<SourceManager>(*Diag, *this->FileMgr)), CodeCompletionAllocator( std::make_shared<clang::GlobalCodeCompletionAllocator>()), Contexts(CXCompletionContext_Unknown), @@ -736,8 +737,8 @@ clang_codeCompleteAt_Impl(CXTranslationUnit TU, const char *complete_filename, } // Parse the resulting source file to find code-completion results. - AllocatedCXCodeCompleteResults *Results = new AllocatedCXCodeCompleteResults( - &AST->getFileManager()); + AllocatedCXCodeCompleteResults *Results = + new AllocatedCXCodeCompleteResults(AST->getFileManagerPtr()); Results->Results = nullptr; Results->NumResults = 0; @@ -764,7 +765,7 @@ clang_codeCompleteAt_Impl(CXTranslationUnit TU, const char *complete_filename, (options & CXCodeComplete_IncludeCodePatterns), IncludeBriefComments, Capture, CXXIdx->getPCHContainerOperations(), Results->Diag, - Results->LangOpts, *Results->SourceMgr, *Results->FileMgr, + Results->LangOpts, Results->SourceMgr, Results->FileMgr, Results->Diagnostics, Results->TemporaryBuffers, /*SyntaxOnlyAction=*/nullptr); diff --git a/clang/tools/libclang/CXIndexDataConsumer.cpp b/clang/tools/libclang/CXIndexDataConsumer.cpp index f0d92e8c..73d04b8 100644 --- a/clang/tools/libclang/CXIndexDataConsumer.cpp +++ b/clang/tools/libclang/CXIndexDataConsumer.cpp @@ -415,9 +415,9 @@ const char *ScratchAlloc::copyCStr(StringRef Str) { return buf; } -void CXIndexDataConsumer::setASTContext(ASTContext &ctx) { - Ctx = &ctx; - cxtu::getASTUnit(CXTU)->setASTContext(&ctx); +void CXIndexDataConsumer::setASTContext(IntrusiveRefCntPtr<ASTContext> ctx) { + Ctx = ctx.get(); + cxtu::getASTUnit(CXTU)->setASTContext(std::move(ctx)); } void CXIndexDataConsumer::setPreprocessor(std::shared_ptr<Preprocessor> PP) { diff --git a/clang/tools/libclang/CXIndexDataConsumer.h b/clang/tools/libclang/CXIndexDataConsumer.h index 54a3add..b207db7 100644 --- a/clang/tools/libclang/CXIndexDataConsumer.h +++ b/clang/tools/libclang/CXIndexDataConsumer.h @@ -339,7 +339,7 @@ public: ASTContext &getASTContext() const { return *Ctx; } CXTranslationUnit getCXTU() const { return CXTU; } - void setASTContext(ASTContext &ctx); + void setASTContext(llvm::IntrusiveRefCntPtr<ASTContext> ctx); void setPreprocessor(std::shared_ptr<Preprocessor> PP) override; bool shouldSuppressRefs() const { diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp index 32a7147a..c142f14 100644 --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -304,7 +304,8 @@ public: : DataConsumer(dataConsumer) {} void Initialize(ASTContext &Context) override { - DataConsumer.setASTContext(Context); + // TODO: accept Context as IntrusiveRefCntPtr? + DataConsumer.setASTContext(&Context); DataConsumer.startedTranslationUnit(); } @@ -355,7 +356,7 @@ public: DataConsumer->importedPCH(*File); } - DataConsumer->setASTContext(CI.getASTContext()); + DataConsumer->setASTContext(CI.getASTContextPtr()); Preprocessor &PP = CI.getPreprocessor(); PP.addPPCallbacks(std::make_unique<IndexPPCallbacks>(PP, *DataConsumer)); DataConsumer->setPreprocessor(CI.getPreprocessorPtr()); @@ -706,7 +707,7 @@ static CXErrorCode clang_indexTranslationUnit_Impl( else DataConsumer.enteredMainFile(std::nullopt); - DataConsumer.setASTContext(Unit->getASTContext()); + DataConsumer.setASTContext(Unit->getASTContextPtr()); DataConsumer.startedTranslationUnit(); indexPreprocessingRecord(*Unit, DataConsumer); |