Home | History | Annotate | Download | only in Support
      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 //===----------------------------------------------------------------------===//
     41 inline mcld::MsgHandler mcld::unreachable(unsigned int pID)
     42 {
     43   return getDiagnosticEngine().report(pID, DiagnosticEngine::Unreachable);
     44 }
     45 
     46 inline mcld::MsgHandler mcld::fatal(unsigned int pID)
     47 {
     48   return getDiagnosticEngine().report(pID, DiagnosticEngine::Fatal);
     49 }
     50 
     51 inline mcld::MsgHandler mcld::error(unsigned int pID)
     52 {
     53   return getDiagnosticEngine().report(pID, DiagnosticEngine::Error);
     54 }
     55 
     56 inline mcld::MsgHandler mcld::warning(unsigned int pID)
     57 {
     58   return getDiagnosticEngine().report(pID, DiagnosticEngine::Warning);
     59 }
     60 
     61 inline mcld::MsgHandler mcld::debug(unsigned int pID)
     62 {
     63   return getDiagnosticEngine().report(pID, DiagnosticEngine::Debug);
     64 }
     65 
     66 inline mcld::MsgHandler mcld::note(unsigned int pID)
     67 {
     68   return getDiagnosticEngine().report(pID, DiagnosticEngine::Note);
     69 }
     70 
     71 inline mcld::MsgHandler mcld::ignore(unsigned int pID)
     72 {
     73   return getDiagnosticEngine().report(pID, DiagnosticEngine::Ignore);
     74 }
     75 
     76 #endif
     77 
     78