1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- DiagnosticPrinter.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//===----------------------------------------------------------------------===// 987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#ifndef MCLD_LD_DIAGNOSTICPRINTER_H 1087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#define MCLD_LD_DIAGNOSTICPRINTER_H 11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/DiagnosticEngine.h> 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/Diagnostic.h> 13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 14affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace mcld 15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 16affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang/** \class DiagnosticPrinter 18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * \brief DiagnosticPrinter provides the interface to customize diagnostic 19affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * messages and output. 20affc150dc44fab1911775a49636d0ce85333b634Zonr Chang */ 21affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticPrinter 22affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 23affc150dc44fab1911775a49636d0ce85333b634Zonr Changpublic: 24affc150dc44fab1911775a49636d0ce85333b634Zonr Chang DiagnosticPrinter(); 25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual ~DiagnosticPrinter(); 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 2822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao virtual void beginInput(const Input& pInput, const LinkerConfig& pConfig) {} 29affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void endInput() {} 31affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 32affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void finish() {} 33affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 34affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void clear() 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang { m_NumErrors = m_NumWarnings = 0; } 36affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang /// HandleDiagnostic - Handle this diagnostic, reporting it to the user or 38affc150dc44fab1911775a49636d0ce85333b634Zonr Chang /// capturing it to a log as needed. 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void handleDiagnostic(DiagnosticEngine::Severity pSeverity, 40affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const Diagnostic& pInfo); 41affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 4222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao unsigned int getNumErrors() const { return m_NumErrors; } 4322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao unsigned int getNumWarnings() const { return m_NumWarnings; } 44affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 45affc150dc44fab1911775a49636d0ce85333b634Zonr Changprotected: 46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang unsigned int m_NumErrors; 47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang unsigned int m_NumWarnings; 48affc150dc44fab1911775a49636d0ce85333b634Zonr Chang}; 49affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 50affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // namespace of mcld 51affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 52affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 53affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 54