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