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 13namespace mcld { 14 15class LinkerConfig; 16class DiagnosticPrinter; 17class DiagnosticLineInfo; 18 19void InitializeDiagnosticEngine(const LinkerConfig& pConfig, 20 DiagnosticPrinter* pPrinter = NULL); 21 22void FinalizeDiagnosticEngine(); 23 24bool Diagnose(); 25 26DiagnosticEngine& getDiagnosticEngine(); 27 28MsgHandler unreachable(unsigned int pID); 29MsgHandler fatal(unsigned int pID); 30MsgHandler error(unsigned int pID); 31MsgHandler warning(unsigned int pID); 32MsgHandler debug(unsigned int pID); 33MsgHandler note(unsigned int pID); 34MsgHandler ignore(unsigned int pID); 35 36} // namespace of mcld 37 38//===----------------------------------------------------------------------===// 39// Inline functions 40//===----------------------------------------------------------------------===// 41inline mcld::MsgHandler mcld::unreachable(unsigned int pID) 42{ 43 return getDiagnosticEngine().report(pID, DiagnosticEngine::Unreachable); 44} 45 46inline mcld::MsgHandler mcld::fatal(unsigned int pID) 47{ 48 return getDiagnosticEngine().report(pID, DiagnosticEngine::Fatal); 49} 50 51inline mcld::MsgHandler mcld::error(unsigned int pID) 52{ 53 return getDiagnosticEngine().report(pID, DiagnosticEngine::Error); 54} 55 56inline mcld::MsgHandler mcld::warning(unsigned int pID) 57{ 58 return getDiagnosticEngine().report(pID, DiagnosticEngine::Warning); 59} 60 61inline mcld::MsgHandler mcld::debug(unsigned int pID) 62{ 63 return getDiagnosticEngine().report(pID, DiagnosticEngine::Debug); 64} 65 66inline mcld::MsgHandler mcld::note(unsigned int pID) 67{ 68 return getDiagnosticEngine().report(pID, DiagnosticEngine::Note); 69} 70 71inline mcld::MsgHandler mcld::ignore(unsigned int pID) 72{ 73 return getDiagnosticEngine().report(pID, DiagnosticEngine::Ignore); 74} 75 76#endif 77 78