aboutsummaryrefslogtreecommitdiff
path: root/clang/tools/libclang
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/libclang')
-rw-r--r--clang/tools/libclang/CIndex.cpp4
-rw-r--r--clang/tools/libclang/CIndexCodeCompletion.cpp9
-rw-r--r--clang/tools/libclang/CXIndexDataConsumer.cpp6
-rw-r--r--clang/tools/libclang/CXIndexDataConsumer.h2
-rw-r--r--clang/tools/libclang/Indexing.cpp7
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);