]> granicus.if.org Git - clang/commitdiff
[libclang] Indexing API: Capture diagnostics during indexing.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 28 Nov 2011 04:55:55 +0000 (04:55 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 28 Nov 2011 04:55:55 +0000 (04:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145228 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/ASTUnit.h
lib/Frontend/ASTUnit.cpp
tools/libclang/Indexing.cpp

index ae192fa7c3beb3ac8501d37d2479cc2d67ab1e92..c6c766bb03be729abd1a11feba0493791ae490fe 100644 (file)
@@ -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.
   ///
index a04a4403eaaf3a821ef01fb6407a43eea4b97ce8..2419d27941611e5a5ad5a850eba4fccc01e215fa 100644 (file)
@@ -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();
index af9fad8cedd681a0aa1441a7387adea78f52af4a..5af1d50e7206ca3c6cff6dabb15eb2bfdbcbd235 100644 (file)
@@ -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.