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