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