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_MESSAGE_HANDLING_H 10 #define MCLD_MESSAGE_HANDLING_H 11 #ifdef ENABLE_UNITTEST 12 #include <gtest.h> 13 #endif 14 #include <mcld/LD/MsgHandler.h> 15 16 namespace mcld 17 { 18 19 class MCLDInfo; 20 class DiagnosticPrinter; 21 class DiagnosticLineInfo; 22 23 void InitializeDiagnosticEngine(const MCLDInfo& pLDInfo, 24 DiagnosticLineInfo* pLineInfo, 25 DiagnosticPrinter* pPrinter); 26 27 DiagnosticEngine& getDiagnosticEngine(); 28 29 MsgHandler unreachable(unsigned int pID); 30 MsgHandler fatal(unsigned int pID); 31 MsgHandler error(unsigned int pID); 32 MsgHandler warning(unsigned int pID); 33 MsgHandler debug(unsigned int pID); 34 MsgHandler note(unsigned int pID); 35 MsgHandler ignore(unsigned int pID); 36 37 } // namespace of mcld 38 39 //===----------------------------------------------------------------------===// 40 // Inline functions 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