From 7e747957cdfd49b7f6d3f1cce7f373f093f52e11 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 14 Feb 2012 22:23:11 +0000 Subject: [libclang] Indexing: only index implicit template instantiations via an opt-in indexing option. llvm-svn: 150517 --- clang/tools/libclang/Indexing.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'clang/tools/libclang/Indexing.cpp') diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp index 0d6da2824da..d1af38887b7 100644 --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -137,11 +137,17 @@ public: virtual void HandleInterestingDecl(DeclGroupRef D) {} virtual void HandleTagDeclDefinition(TagDecl *D) { + if (!IndexCtx.shouldIndexImplicitTemplateInsts()) + return; + if (IndexCtx.isTemplateImplicitInstantiation(D)) IndexCtx.indexDecl(D); } virtual void HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) { + if (!IndexCtx.shouldIndexImplicitTemplateInsts()) + return; + IndexCtx.indexDecl(D); } }; @@ -194,7 +200,12 @@ public: indexDiagnostics(CXTU, IndexCtx); } - virtual TranslationUnitKind getTranslationUnitKind() { return TU_Complete; } + virtual TranslationUnitKind getTranslationUnitKind() { + if (IndexCtx.shouldIndexImplicitTemplateInsts()) + return TU_Complete; + else + return TU_Prefix; + } virtual bool hasCodeCompletionSupport() const { return false; } }; -- cgit v1.2.3