1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- MsgHandling.h ------------------------------------------------------===// 2affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 3affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// The MCLinker Project 4affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 5affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// This file is distributed under the University of Illinois Open Source 6affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// License. See LICENSE.TXT for details. 7affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 8affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===----------------------------------------------------------------------===// 9affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifndef MCLD_MESSAGE_HANDLING_H 10affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#define MCLD_MESSAGE_HANDLING_H 11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifdef ENABLE_UNITTEST 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <gtest.h> 13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 14affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/MsgHandler.h> 15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaonamespace mcld { 17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaoclass LinkerConfig; 19affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticPrinter; 20affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticLineInfo; 21affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 2222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaovoid InitializeDiagnosticEngine(const LinkerConfig& pConfig, 2322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao DiagnosticPrinter* pPrinter = NULL); 2422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaovoid FinalizeDiagnosticEngine(); 2622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool Diagnose(); 28affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 29affc150dc44fab1911775a49636d0ce85333b634Zonr ChangDiagnosticEngine& getDiagnosticEngine(); 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 31affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler unreachable(unsigned int pID); 32affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler fatal(unsigned int pID); 33affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler error(unsigned int pID); 34affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler warning(unsigned int pID); 35affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler debug(unsigned int pID); 36affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler note(unsigned int pID); 37affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler ignore(unsigned int pID); 38affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // namespace of mcld 40affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 41affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===----------------------------------------------------------------------===// 42affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// Inline functions 4322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 44affc150dc44fab1911775a49636d0ce85333b634Zonr Changinline mcld::MsgHandler mcld::unreachable(unsigned int pID) 45affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Unreachable); 47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 48affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 49affc150dc44fab1911775a49636d0ce85333b634Zonr Changinline mcld::MsgHandler mcld::fatal(unsigned int pID) 50affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 51affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Fatal); 52affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 53affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 54affc150dc44fab1911775a49636d0ce85333b634Zonr Changinline mcld::MsgHandler mcld::error(unsigned int pID) 55affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 56affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Error); 57affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 58affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 59affc150dc44fab1911775a49636d0ce85333b634Zonr Changinline mcld::MsgHandler mcld::warning(unsigned int pID) 60affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 61affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Warning); 62affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 63affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 64affc150dc44fab1911775a49636d0ce85333b634Zonr Changinline mcld::MsgHandler mcld::debug(unsigned int pID) 65affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 66affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Debug); 67affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 68affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 69affc150dc44fab1911775a49636d0ce85333b634Zonr Changinline mcld::MsgHandler mcld::note(unsigned int pID) 70affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 71affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Note); 72affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 73affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 74affc150dc44fab1911775a49636d0ce85333b634Zonr Changinline mcld::MsgHandler mcld::ignore(unsigned int pID) 75affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 76affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Ignore); 77affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 78affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 79affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 80affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 81