Index: include/lldb/Expression/DiagnosticManager.h =================================================================== --- include/lldb/Expression/DiagnosticManager.h +++ include/lldb/Expression/DiagnosticManager.h @@ -125,6 +125,8 @@ m_diagnostics.push_back(diagnostic); } + void CopyDiagnostics(DiagnosticManager &otherDiagnostics); + size_t Printf(DiagnosticSeverity severity, const char *format, ...) __attribute__((format(printf, 3, 4))); size_t PutCString(DiagnosticSeverity severity, const char *cstr); Index: source/Expression/DiagnosticManager.cpp =================================================================== --- source/Expression/DiagnosticManager.cpp +++ source/Expression/DiagnosticManager.cpp @@ -79,3 +79,12 @@ AddDiagnostic(cstr, severity, eDiagnosticOriginLLDB); return strlen(cstr); } + +void DiagnosticManager::CopyDiagnostics(DiagnosticManager &otherDiagnostics) { + for (const DiagnosticList::value_type &other_diagnostic: + otherDiagnostics.Diagnostics()) { + AddDiagnostic( + other_diagnostic->GetMessage(), other_diagnostic->GetSeverity(), + other_diagnostic->getKind(), other_diagnostic->GetCompilerID()); + } +}