• 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_MESSAGE_HANDLING_H
10 #define MCLD_MESSAGE_HANDLING_H
11 #ifdef ENABLE_UNITTEST
12 #include <gtest.h>
13 #endif
14 #include <mcld/LD/MsgHandler.h>
15 
16 namespace mcld
17 {
18 
19 class MCLDInfo;
20 class DiagnosticPrinter;
21 class DiagnosticLineInfo;
22 
23 void InitializeDiagnosticEngine(const MCLDInfo& pLDInfo,
24                                 DiagnosticLineInfo* pLineInfo,
25                                 DiagnosticPrinter* pPrinter);
26 
27 DiagnosticEngine& getDiagnosticEngine();
28 
29 MsgHandler unreachable(unsigned int pID);
30 MsgHandler fatal(unsigned int pID);
31 MsgHandler error(unsigned int pID);
32 MsgHandler warning(unsigned int pID);
33 MsgHandler debug(unsigned int pID);
34 MsgHandler note(unsigned int pID);
35 MsgHandler ignore(unsigned int pID);
36 
37 } // namespace of mcld
38 
39 //===----------------------------------------------------------------------===//
40 //  Inline functions
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