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