aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-28 04:55:55 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-28 04:55:55 +0000
commit991bf49f68e8caeb900dd9738712b861073363d9 (patch)
treedfd7f27c815b0013cd93470de735000cc94f9516
parent5c00fc309bec8900a798e7d5f87d1ccab7908a28 (diff)
[libclang] Indexing API: Capture diagnostics during indexing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145228 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Frontend/ASTUnit.h3
-rw-r--r--lib/Frontend/ASTUnit.cpp5
-rw-r--r--tools/libclang/Indexing.cpp3
3 files changed, 7 insertions, 4 deletions
diff --git a/include/clang/Frontend/ASTUnit.h b/include/clang/Frontend/ASTUnit.h
index ae192fa7c3..c6c766bb03 100644
--- a/include/clang/Frontend/ASTUnit.h
+++ b/include/clang/Frontend/ASTUnit.h
@@ -628,7 +628,8 @@ public:
/// \brief Create a ASTUnit. Gets ownership of the passed CompilerInvocation.
static ASTUnit *create(CompilerInvocation *CI,
- llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags);
+ llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags,
+ bool CaptureDiagnostics = false);
/// \brief Create a ASTUnit from an AST file.
///
diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp
index a04a4403ea..2419d27941 100644
--- a/lib/Frontend/ASTUnit.cpp
+++ b/lib/Frontend/ASTUnit.cpp
@@ -1632,10 +1632,11 @@ StringRef ASTUnit::getMainFileName() const {
}
ASTUnit *ASTUnit::create(CompilerInvocation *CI,
- llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags) {
+ llvm::IntrusiveRefCntPtr<DiagnosticsEngine> Diags,
+ bool CaptureDiagnostics) {
llvm::OwningPtr<ASTUnit> AST;
AST.reset(new ASTUnit(false));
- ConfigureDiags(Diags, 0, 0, *AST, /*CaptureDiagnostics=*/false);
+ ConfigureDiags(Diags, 0, 0, *AST, CaptureDiagnostics);
AST->Diagnostics = Diags;
AST->Invocation = CI;
AST->FileSystemOpts = CI->getFileSystemOpts();
diff --git a/tools/libclang/Indexing.cpp b/tools/libclang/Indexing.cpp
index af9fad8ced..5af1d50e72 100644
--- a/tools/libclang/Indexing.cpp
+++ b/tools/libclang/Indexing.cpp
@@ -317,7 +317,8 @@ static void clang_indexSourceFile_Impl(void *UserData) {
if (!requestedToGetTU)
CInvok->getPreprocessorOpts().DetailedRecord = false;
- ASTUnit *Unit = ASTUnit::create(CInvok.getPtr(), Diags);
+ ASTUnit *Unit = ASTUnit::create(CInvok.getPtr(), Diags,
+ /*CaptureDiagnostics=*/true);
llvm::OwningPtr<CXTUOwner> CXTU(new CXTUOwner(MakeCXTranslationUnit(Unit)));
// Recover resources if we crash before exiting this method.