//===- MsgHandling.cpp ----------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include #include #include #include #include #include #include using namespace mcld; //===----------------------------------------------------------------------===// // static variables //===----------------------------------------------------------------------===// static llvm::ManagedStatic g_pEngine; void mcld::InitializeDiagnosticEngine(const mcld::MCLDInfo& pLDInfo, DiagnosticLineInfo* pLineInfo, DiagnosticPrinter* pPrinter) { g_pEngine->reset(pLDInfo); if (NULL != pLineInfo) g_pEngine->setLineInfo(*pLineInfo); if (NULL != pPrinter) g_pEngine->setPrinter(*pPrinter, false); else { DiagnosticPrinter* printer = new DiagnosticPrinter(); g_pEngine->setPrinter(*printer, true); } } DiagnosticEngine& mcld::getDiagnosticEngine() { return *g_pEngine; }