DiagnosticInfos.h revision 22add6ff3426df1a85089fe6a6e1597ee3b6f300
1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- DiagnosticInfo.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//===----------------------------------------------------------------------===// 9affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifndef MCLD_DIAGNOSTIC_INFORMATION_H 10affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#define MCLD_DIAGNOSTIC_INFORMATION_H 11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifdef ENABLE_UNITTEST 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <gtest.h> 13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 14affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <llvm/ADT/StringRef.h> 15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 16affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace mcld { 17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 18affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace diag { 19affc150dc44fab1911775a49636d0ce85333b634Zonr Chang enum ID { 20affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#define DIAG(ENUM, CLASS, ADDRMSG, LINEMSG) ENUM, 21affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include "mcld/LD/DiagCommonKinds.inc" 22affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include "mcld/LD/DiagReaders.inc" 23affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include "mcld/LD/DiagSymbolResolutions.inc" 24affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include "mcld/LD/DiagRelocations.inc" 25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include "mcld/LD/DiagLayouts.inc" 26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include "mcld/LD/DiagGOTPLT.inc" 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#undef DIAG 28affc150dc44fab1911775a49636d0ce85333b634Zonr Chang NUM_OF_BUILDIN_DIAGNOSTIC_INFO 29affc150dc44fab1911775a49636d0ce85333b634Zonr Chang }; 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // namespace of diag 31affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 3222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaoclass LinkerConfig; 33affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticEngine; 34affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang/** \class DiagnosticInfos 36affc150dc44fab1911775a49636d0ce85333b634Zonr Chang * \brief DiagnosticInfos caches run-time information of DiagnosticInfo. 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang */ 38affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass DiagnosticInfos 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 40affc150dc44fab1911775a49636d0ce85333b634Zonr Changpublic: 4122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao DiagnosticInfos(const LinkerConfig& pConfig); 42affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 43affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ~DiagnosticInfos(); 44affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 45affc150dc44fab1911775a49636d0ce85333b634Zonr Chang llvm::StringRef getDescription(unsigned int pID, bool pLoC) const; 46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang bool process(DiagnosticEngine& pEngine) const; 48affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 49affc150dc44fab1911775a49636d0ce85333b634Zonr Changprivate: 5022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao const LinkerConfig& m_Config; 51affc150dc44fab1911775a49636d0ce85333b634Zonr Chang}; 52affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 53affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // namespace of mcld 54affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 55affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif 56affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 57