1 //===- MsgHandling.h ------------------------------------------------------===// 2 // 3 // The MCLinker Project 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 #ifndef MCLD_SUPPORT_MSGHANDLING_H 10 #define MCLD_SUPPORT_MSGHANDLING_H 11 #include <mcld/LD/MsgHandler.h> 12 13 namespace mcld { 14 15 class LinkerConfig; 16 class DiagnosticPrinter; 17 class DiagnosticLineInfo; 18 19 void InitializeDiagnosticEngine(const LinkerConfig& pConfig, 20 DiagnosticPrinter* pPrinter = NULL); 21 22 void FinalizeDiagnosticEngine(); 23 24 bool Diagnose(); 25 26 DiagnosticEngine& getDiagnosticEngine(); 27 28 MsgHandler unreachable(unsigned int pID); 29 MsgHandler fatal(unsigned int pID); 30 MsgHandler error(unsigned int pID); 31 MsgHandler warning(unsigned int pID); 32 MsgHandler debug(unsigned int pID); 33 MsgHandler note(unsigned int pID); 34 MsgHandler ignore(unsigned int pID); 35 36 } // namespace of mcld 37 38 //===----------------------------------------------------------------------===// 39 // Inline functions 40 //===----------------------------------------------------------------------===// unreachable(unsigned int pID)41inline mcld::MsgHandler mcld::unreachable(unsigned int pID) 42 { 43 return getDiagnosticEngine().report(pID, DiagnosticEngine::Unreachable); 44 } 45 fatal(unsigned int pID)46inline mcld::MsgHandler mcld::fatal(unsigned int pID) 47 { 48 return getDiagnosticEngine().report(pID, DiagnosticEngine::Fatal); 49 } 50 error(unsigned int pID)51inline mcld::MsgHandler mcld::error(unsigned int pID) 52 { 53 return getDiagnosticEngine().report(pID, DiagnosticEngine::Error); 54 } 55 warning(unsigned int pID)56inline mcld::MsgHandler mcld::warning(unsigned int pID) 57 { 58 return getDiagnosticEngine().report(pID, DiagnosticEngine::Warning); 59 } 60 debug(unsigned int pID)61inline mcld::MsgHandler mcld::debug(unsigned int pID) 62 { 63 return getDiagnosticEngine().report(pID, DiagnosticEngine::Debug); 64 } 65 note(unsigned int pID)66inline mcld::MsgHandler mcld::note(unsigned int pID) 67 { 68 return getDiagnosticEngine().report(pID, DiagnosticEngine::Note); 69 } 70 ignore(unsigned int pID)71inline mcld::MsgHandler mcld::ignore(unsigned int pID) 72 { 73 return getDiagnosticEngine().report(pID, DiagnosticEngine::Ignore); 74 } 75 76 #endif 77 78