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//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef MCLD_SUPPORT_MSGHANDLING_H_ 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define MCLD_SUPPORT_MSGHANDLING_H_ 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/MsgHandler.h" 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaonamespace mcld { 14affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaoclass LinkerConfig; 16affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticPrinter; 17affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticLineInfo; 18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaovoid InitializeDiagnosticEngine(const LinkerConfig& pConfig, 2022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao DiagnosticPrinter* pPrinter = NULL); 2122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaovoid FinalizeDiagnosticEngine(); 2322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaobool Diagnose(); 25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 26affc150dc44fab1911775a49636d0ce85333b634Zonr ChangDiagnosticEngine& getDiagnosticEngine(); 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 28affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler unreachable(unsigned int pID); 29affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler fatal(unsigned int pID); 30affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler error(unsigned int pID); 31affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler warning(unsigned int pID); 32affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler debug(unsigned int pID); 33affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler note(unsigned int pID); 34affc150dc44fab1911775a49636d0ce85333b634Zonr ChangMsgHandler ignore(unsigned int pID); 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 38affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===----------------------------------------------------------------------===// 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// Inline functions 4022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 4137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesinline mcld::MsgHandler mcld::unreachable(unsigned int pID) { 42affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Unreachable); 43affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 44affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hinesinline mcld::MsgHandler mcld::fatal(unsigned int pID) { 46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Fatal); 47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 48affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 4937b74a387bb3993387029859c2d9d051c41c724eStephen Hinesinline mcld::MsgHandler mcld::error(unsigned int pID) { 50affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Error); 51affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 52affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 5337b74a387bb3993387029859c2d9d051c41c724eStephen Hinesinline mcld::MsgHandler mcld::warning(unsigned int pID) { 54affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Warning); 55affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 56affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 5737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesinline mcld::MsgHandler mcld::debug(unsigned int pID) { 58affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Debug); 59affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 60affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 6137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesinline mcld::MsgHandler mcld::note(unsigned int pID) { 62affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Note); 63affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 64affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 6537b74a387bb3993387029859c2d9d051c41c724eStephen Hinesinline mcld::MsgHandler mcld::ignore(unsigned int pID) { 66affc150dc44fab1911775a49636d0ce85333b634Zonr Chang return getDiagnosticEngine().report(pID, DiagnosticEngine::Ignore); 67affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 68affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 6937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif // MCLD_SUPPORT_MSGHANDLING_H_ 70