DiagnosticInfos.h revision cfcb22478ca64c308df58f9abe6fa2dedb213c16
1//===- DiagnosticInfo.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_LD_DIAGNOSTICINFOS_H_ 10#define MCLD_LD_DIAGNOSTICINFOS_H_ 11 12#include <llvm/ADT/StringRef.h> 13 14namespace mcld { 15 16namespace diag { 17enum ID { 18#define DIAG(ENUM, CLASS, ADDRMSG, LINEMSG) ENUM, 19#include "mcld/LD/DiagAttribute.inc" 20#include "mcld/LD/DiagCommonKinds.inc" 21#include "mcld/LD/DiagReaders.inc" 22#include "mcld/LD/DiagSymbolResolutions.inc" 23#include "mcld/LD/DiagRelocations.inc" 24#include "mcld/LD/DiagLayouts.inc" 25#include "mcld/LD/DiagGOTPLT.inc" 26#include "mcld/LD/DiagLDScript.inc" 27#include "mcld/LD/DiagMips.inc" 28#undef DIAG 29 NUM_OF_BUILDIN_DIAGNOSTIC_INFO 30}; 31} // namespace diag 32 33class DiagnosticEngine; 34class LinkerConfig; 35 36/** \class DiagnosticInfos 37 * \brief DiagnosticInfos caches run-time information of DiagnosticInfo. 38 */ 39class DiagnosticInfos { 40 public: 41 explicit DiagnosticInfos(const LinkerConfig& pConfig); 42 43 ~DiagnosticInfos(); 44 45 llvm::StringRef getDescription(unsigned int pID, bool pLoC) const; 46 47 bool process(DiagnosticEngine& pEngine) const; 48 49 private: 50 const LinkerConfig& m_Config; 51}; 52 53} // namespace mcld 54 55#endif // MCLD_LD_DIAGNOSTICINFOS_H_ 56