diff options
Diffstat (limited to 'clang/tools/libclang/Indexing.cpp')
-rw-r--r-- | clang/tools/libclang/Indexing.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp index ad3dc70ea3d..63bae0717c4 100644 --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -443,10 +443,14 @@ static CXErrorCode clang_indexSourceFile_Impl( if (CXXIdx->isOptEnabled(CXGlobalOpt_ThreadBackgroundPriorityForIndexing)) setThreadBackgroundPriority(); - bool CaptureDiagnostics = !Logger::isLoggingEnabled(); + CaptureDiagsKind CaptureDiagnostics = CaptureDiagsKind::All; + if (TU_options & CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles) + CaptureDiagnostics = CaptureDiagsKind::AllWithoutNonErrorsFromIncludes; + if (Logger::isLoggingEnabled()) + CaptureDiagnostics = CaptureDiagsKind::None; CaptureDiagnosticConsumer *CaptureDiag = nullptr; - if (CaptureDiagnostics) + if (CaptureDiagnostics != CaptureDiagsKind::None) CaptureDiag = new CaptureDiagnosticConsumer(); // Configure the diagnostics. |