1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- TextDiagnosticPrinter.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_TEXTDIAGNOSTICPRINTER_H 1087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#define MCLD_LD_TEXTDIAGNOSTICPRINTER_H 11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/DiagnosticPrinter.h> 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <llvm/Support/raw_ostream.h> 13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 14affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace mcld 15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 16affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 1722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaoclass LinkerConfig; 18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 19affc150dc44fab1911775a49636d0ce85333b634Zonr Chang/** \class TextDiagnosticPrinter 20affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * \brief The plain, text-based DiagnosticPrinter. 21affc150dc44fab1911775a49636d0ce85333b634Zonr Chang */ 22affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass TextDiagnosticPrinter : public DiagnosticPrinter 23affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 24affc150dc44fab1911775a49636d0ce85333b634Zonr Changpublic: 2522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao TextDiagnosticPrinter(llvm::raw_ostream& pOStream, const LinkerConfig& pConfig); 26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual ~TextDiagnosticPrinter(); 28affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 29affc150dc44fab1911775a49636d0ce85333b634Zonr Chang /// HandleDiagnostic - Handle this diagnostic, reporting it to the user or 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang /// capturing it to a log as needed. 31affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void handleDiagnostic(DiagnosticEngine::Severity pSeverity, 32affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const Diagnostic& pInfo); 33affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 3422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao virtual void beginInput(const Input& pInput, const LinkerConfig& pConfig); 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 36affc150dc44fab1911775a49636d0ce85333b634Zonr Chang virtual void endInput(); 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 38affc150dc44fab1911775a49636d0ce85333b634Zonr Changprivate: 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang llvm::raw_ostream& m_OStream; 4022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao const LinkerConfig& m_Config; 41affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const Input* m_pInput; 42affc150dc44fab1911775a49636d0ce85333b634Zonr Chang}; 43affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 44affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // namespace of mcld 45affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 48