PageRenderTime 26ms CodeModel.GetById 12ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp

https://bitbucket.org/freebsd/freebsd-base
C++ | 383 lines | 333 code | 43 blank | 7 comment | 2 complexity | 99af929c466233ee8b6cd408d27034a4 MD5 | raw file
  1. //===- EnumTables.cpp - Enum to string conversion tables ------------------===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. #include "llvm/DebugInfo/CodeView/EnumTables.h"
  9. #include "llvm/Support/ScopedPrinter.h"
  10. #include <type_traits>
  11. using namespace llvm;
  12. using namespace codeview;
  13. #define CV_ENUM_CLASS_ENT(enum_class, enum) \
  14. { #enum, std::underlying_type < enum_class > ::type(enum_class::enum) }
  15. #define CV_ENUM_ENT(ns, enum) \
  16. { #enum, ns::enum }
  17. static const EnumEntry<SymbolKind> SymbolTypeNames[] = {
  18. #define CV_SYMBOL(enum, val) {#enum, enum},
  19. #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
  20. #undef CV_SYMBOL
  21. };
  22. static const EnumEntry<TypeLeafKind> TypeLeafNames[] = {
  23. #define CV_TYPE(name, val) {#name, name},
  24. #include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
  25. #undef CV_TYPE
  26. };
  27. static const EnumEntry<uint16_t> RegisterNames_X86[] = {
  28. #define CV_REGISTERS_X86
  29. #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
  30. #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
  31. #undef CV_REGISTER
  32. #undef CV_REGISTERS_X86
  33. };
  34. static const EnumEntry<uint16_t> RegisterNames_ARM64[] = {
  35. #define CV_REGISTERS_ARM64
  36. #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
  37. #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
  38. #undef CV_REGISTER
  39. #undef CV_REGISTERS_ARM64
  40. };
  41. static const EnumEntry<uint32_t> PublicSymFlagNames[] = {
  42. CV_ENUM_CLASS_ENT(PublicSymFlags, Code),
  43. CV_ENUM_CLASS_ENT(PublicSymFlags, Function),
  44. CV_ENUM_CLASS_ENT(PublicSymFlags, Managed),
  45. CV_ENUM_CLASS_ENT(PublicSymFlags, MSIL),
  46. };
  47. static const EnumEntry<uint8_t> ProcSymFlagNames[] = {
  48. CV_ENUM_CLASS_ENT(ProcSymFlags, HasFP),
  49. CV_ENUM_CLASS_ENT(ProcSymFlags, HasIRET),
  50. CV_ENUM_CLASS_ENT(ProcSymFlags, HasFRET),
  51. CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoReturn),
  52. CV_ENUM_CLASS_ENT(ProcSymFlags, IsUnreachable),
  53. CV_ENUM_CLASS_ENT(ProcSymFlags, HasCustomCallingConv),
  54. CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoInline),
  55. CV_ENUM_CLASS_ENT(ProcSymFlags, HasOptimizedDebugInfo),
  56. };
  57. static const EnumEntry<uint16_t> LocalFlags[] = {
  58. CV_ENUM_CLASS_ENT(LocalSymFlags, IsParameter),
  59. CV_ENUM_CLASS_ENT(LocalSymFlags, IsAddressTaken),
  60. CV_ENUM_CLASS_ENT(LocalSymFlags, IsCompilerGenerated),
  61. CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregate),
  62. CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregated),
  63. CV_ENUM_CLASS_ENT(LocalSymFlags, IsAliased),
  64. CV_ENUM_CLASS_ENT(LocalSymFlags, IsAlias),
  65. CV_ENUM_CLASS_ENT(LocalSymFlags, IsReturnValue),
  66. CV_ENUM_CLASS_ENT(LocalSymFlags, IsOptimizedOut),
  67. CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredGlobal),
  68. CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredStatic),
  69. };
  70. static const EnumEntry<uint8_t> FrameCookieKinds[] = {
  71. CV_ENUM_CLASS_ENT(FrameCookieKind, Copy),
  72. CV_ENUM_CLASS_ENT(FrameCookieKind, XorStackPointer),
  73. CV_ENUM_CLASS_ENT(FrameCookieKind, XorFramePointer),
  74. CV_ENUM_CLASS_ENT(FrameCookieKind, XorR13),
  75. };
  76. static const EnumEntry<codeview::SourceLanguage> SourceLanguages[] = {
  77. CV_ENUM_ENT(SourceLanguage, C), CV_ENUM_ENT(SourceLanguage, Cpp),
  78. CV_ENUM_ENT(SourceLanguage, Fortran), CV_ENUM_ENT(SourceLanguage, Masm),
  79. CV_ENUM_ENT(SourceLanguage, Pascal), CV_ENUM_ENT(SourceLanguage, Basic),
  80. CV_ENUM_ENT(SourceLanguage, Cobol), CV_ENUM_ENT(SourceLanguage, Link),
  81. CV_ENUM_ENT(SourceLanguage, Cvtres), CV_ENUM_ENT(SourceLanguage, Cvtpgd),
  82. CV_ENUM_ENT(SourceLanguage, CSharp), CV_ENUM_ENT(SourceLanguage, VB),
  83. CV_ENUM_ENT(SourceLanguage, ILAsm), CV_ENUM_ENT(SourceLanguage, Java),
  84. CV_ENUM_ENT(SourceLanguage, JScript), CV_ENUM_ENT(SourceLanguage, MSIL),
  85. CV_ENUM_ENT(SourceLanguage, HLSL), CV_ENUM_ENT(SourceLanguage, D),
  86. CV_ENUM_ENT(SourceLanguage, Swift),
  87. };
  88. static const EnumEntry<uint32_t> CompileSym2FlagNames[] = {
  89. CV_ENUM_CLASS_ENT(CompileSym2Flags, EC),
  90. CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDbgInfo),
  91. CV_ENUM_CLASS_ENT(CompileSym2Flags, LTCG),
  92. CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDataAlign),
  93. CV_ENUM_CLASS_ENT(CompileSym2Flags, ManagedPresent),
  94. CV_ENUM_CLASS_ENT(CompileSym2Flags, SecurityChecks),
  95. CV_ENUM_CLASS_ENT(CompileSym2Flags, HotPatch),
  96. CV_ENUM_CLASS_ENT(CompileSym2Flags, CVTCIL),
  97. CV_ENUM_CLASS_ENT(CompileSym2Flags, MSILModule),
  98. };
  99. static const EnumEntry<uint32_t> CompileSym3FlagNames[] = {
  100. CV_ENUM_CLASS_ENT(CompileSym3Flags, EC),
  101. CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDbgInfo),
  102. CV_ENUM_CLASS_ENT(CompileSym3Flags, LTCG),
  103. CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDataAlign),
  104. CV_ENUM_CLASS_ENT(CompileSym3Flags, ManagedPresent),
  105. CV_ENUM_CLASS_ENT(CompileSym3Flags, SecurityChecks),
  106. CV_ENUM_CLASS_ENT(CompileSym3Flags, HotPatch),
  107. CV_ENUM_CLASS_ENT(CompileSym3Flags, CVTCIL),
  108. CV_ENUM_CLASS_ENT(CompileSym3Flags, MSILModule),
  109. CV_ENUM_CLASS_ENT(CompileSym3Flags, Sdl),
  110. CV_ENUM_CLASS_ENT(CompileSym3Flags, PGO),
  111. CV_ENUM_CLASS_ENT(CompileSym3Flags, Exp),
  112. };
  113. static const EnumEntry<uint32_t> FileChecksumNames[] = {
  114. CV_ENUM_CLASS_ENT(FileChecksumKind, None),
  115. CV_ENUM_CLASS_ENT(FileChecksumKind, MD5),
  116. CV_ENUM_CLASS_ENT(FileChecksumKind, SHA1),
  117. CV_ENUM_CLASS_ENT(FileChecksumKind, SHA256),
  118. };
  119. static const EnumEntry<unsigned> CPUTypeNames[] = {
  120. CV_ENUM_CLASS_ENT(CPUType, Intel8080),
  121. CV_ENUM_CLASS_ENT(CPUType, Intel8086),
  122. CV_ENUM_CLASS_ENT(CPUType, Intel80286),
  123. CV_ENUM_CLASS_ENT(CPUType, Intel80386),
  124. CV_ENUM_CLASS_ENT(CPUType, Intel80486),
  125. CV_ENUM_CLASS_ENT(CPUType, Pentium),
  126. CV_ENUM_CLASS_ENT(CPUType, PentiumPro),
  127. CV_ENUM_CLASS_ENT(CPUType, Pentium3),
  128. CV_ENUM_CLASS_ENT(CPUType, MIPS),
  129. CV_ENUM_CLASS_ENT(CPUType, MIPS16),
  130. CV_ENUM_CLASS_ENT(CPUType, MIPS32),
  131. CV_ENUM_CLASS_ENT(CPUType, MIPS64),
  132. CV_ENUM_CLASS_ENT(CPUType, MIPSI),
  133. CV_ENUM_CLASS_ENT(CPUType, MIPSII),
  134. CV_ENUM_CLASS_ENT(CPUType, MIPSIII),
  135. CV_ENUM_CLASS_ENT(CPUType, MIPSIV),
  136. CV_ENUM_CLASS_ENT(CPUType, MIPSV),
  137. CV_ENUM_CLASS_ENT(CPUType, M68000),
  138. CV_ENUM_CLASS_ENT(CPUType, M68010),
  139. CV_ENUM_CLASS_ENT(CPUType, M68020),
  140. CV_ENUM_CLASS_ENT(CPUType, M68030),
  141. CV_ENUM_CLASS_ENT(CPUType, M68040),
  142. CV_ENUM_CLASS_ENT(CPUType, Alpha),
  143. CV_ENUM_CLASS_ENT(CPUType, Alpha21164),
  144. CV_ENUM_CLASS_ENT(CPUType, Alpha21164A),
  145. CV_ENUM_CLASS_ENT(CPUType, Alpha21264),
  146. CV_ENUM_CLASS_ENT(CPUType, Alpha21364),
  147. CV_ENUM_CLASS_ENT(CPUType, PPC601),
  148. CV_ENUM_CLASS_ENT(CPUType, PPC603),
  149. CV_ENUM_CLASS_ENT(CPUType, PPC604),
  150. CV_ENUM_CLASS_ENT(CPUType, PPC620),
  151. CV_ENUM_CLASS_ENT(CPUType, PPCFP),
  152. CV_ENUM_CLASS_ENT(CPUType, PPCBE),
  153. CV_ENUM_CLASS_ENT(CPUType, SH3),
  154. CV_ENUM_CLASS_ENT(CPUType, SH3E),
  155. CV_ENUM_CLASS_ENT(CPUType, SH3DSP),
  156. CV_ENUM_CLASS_ENT(CPUType, SH4),
  157. CV_ENUM_CLASS_ENT(CPUType, SHMedia),
  158. CV_ENUM_CLASS_ENT(CPUType, ARM3),
  159. CV_ENUM_CLASS_ENT(CPUType, ARM4),
  160. CV_ENUM_CLASS_ENT(CPUType, ARM4T),
  161. CV_ENUM_CLASS_ENT(CPUType, ARM5),
  162. CV_ENUM_CLASS_ENT(CPUType, ARM5T),
  163. CV_ENUM_CLASS_ENT(CPUType, ARM6),
  164. CV_ENUM_CLASS_ENT(CPUType, ARM_XMAC),
  165. CV_ENUM_CLASS_ENT(CPUType, ARM_WMMX),
  166. CV_ENUM_CLASS_ENT(CPUType, ARM7),
  167. CV_ENUM_CLASS_ENT(CPUType, ARM64),
  168. CV_ENUM_CLASS_ENT(CPUType, Omni),
  169. CV_ENUM_CLASS_ENT(CPUType, Ia64),
  170. CV_ENUM_CLASS_ENT(CPUType, Ia64_2),
  171. CV_ENUM_CLASS_ENT(CPUType, CEE),
  172. CV_ENUM_CLASS_ENT(CPUType, AM33),
  173. CV_ENUM_CLASS_ENT(CPUType, M32R),
  174. CV_ENUM_CLASS_ENT(CPUType, TriCore),
  175. CV_ENUM_CLASS_ENT(CPUType, X64),
  176. CV_ENUM_CLASS_ENT(CPUType, EBC),
  177. CV_ENUM_CLASS_ENT(CPUType, Thumb),
  178. CV_ENUM_CLASS_ENT(CPUType, ARMNT),
  179. CV_ENUM_CLASS_ENT(CPUType, D3D11_Shader),
  180. };
  181. static const EnumEntry<uint32_t> FrameProcSymFlagNames[] = {
  182. CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasAlloca),
  183. CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasSetJmp),
  184. CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasLongJmp),
  185. CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasInlineAssembly),
  186. CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasExceptionHandling),
  187. CV_ENUM_CLASS_ENT(FrameProcedureOptions, MarkedInline),
  188. CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasStructuredExceptionHandling),
  189. CV_ENUM_CLASS_ENT(FrameProcedureOptions, Naked),
  190. CV_ENUM_CLASS_ENT(FrameProcedureOptions, SecurityChecks),
  191. CV_ENUM_CLASS_ENT(FrameProcedureOptions, AsynchronousExceptionHandling),
  192. CV_ENUM_CLASS_ENT(FrameProcedureOptions, NoStackOrderingForSecurityChecks),
  193. CV_ENUM_CLASS_ENT(FrameProcedureOptions, Inlined),
  194. CV_ENUM_CLASS_ENT(FrameProcedureOptions, StrictSecurityChecks),
  195. CV_ENUM_CLASS_ENT(FrameProcedureOptions, SafeBuffers),
  196. CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedLocalBasePointerMask),
  197. CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedParamBasePointerMask),
  198. CV_ENUM_CLASS_ENT(FrameProcedureOptions, ProfileGuidedOptimization),
  199. CV_ENUM_CLASS_ENT(FrameProcedureOptions, ValidProfileCounts),
  200. CV_ENUM_CLASS_ENT(FrameProcedureOptions, OptimizedForSpeed),
  201. CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfg),
  202. CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfw),
  203. };
  204. static const EnumEntry<uint32_t> ModuleSubstreamKindNames[] = {
  205. CV_ENUM_CLASS_ENT(DebugSubsectionKind, None),
  206. CV_ENUM_CLASS_ENT(DebugSubsectionKind, Symbols),
  207. CV_ENUM_CLASS_ENT(DebugSubsectionKind, Lines),
  208. CV_ENUM_CLASS_ENT(DebugSubsectionKind, StringTable),
  209. CV_ENUM_CLASS_ENT(DebugSubsectionKind, FileChecksums),
  210. CV_ENUM_CLASS_ENT(DebugSubsectionKind, FrameData),
  211. CV_ENUM_CLASS_ENT(DebugSubsectionKind, InlineeLines),
  212. CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeImports),
  213. CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeExports),
  214. CV_ENUM_CLASS_ENT(DebugSubsectionKind, ILLines),
  215. CV_ENUM_CLASS_ENT(DebugSubsectionKind, FuncMDTokenMap),
  216. CV_ENUM_CLASS_ENT(DebugSubsectionKind, TypeMDTokenMap),
  217. CV_ENUM_CLASS_ENT(DebugSubsectionKind, MergedAssemblyInput),
  218. CV_ENUM_CLASS_ENT(DebugSubsectionKind, CoffSymbolRVA),
  219. };
  220. static const EnumEntry<uint16_t> ExportSymFlagNames[] = {
  221. CV_ENUM_CLASS_ENT(ExportFlags, IsConstant),
  222. CV_ENUM_CLASS_ENT(ExportFlags, IsData),
  223. CV_ENUM_CLASS_ENT(ExportFlags, IsPrivate),
  224. CV_ENUM_CLASS_ENT(ExportFlags, HasNoName),
  225. CV_ENUM_CLASS_ENT(ExportFlags, HasExplicitOrdinal),
  226. CV_ENUM_CLASS_ENT(ExportFlags, IsForwarder),
  227. };
  228. static const EnumEntry<uint8_t> ThunkOrdinalNames[] = {
  229. CV_ENUM_CLASS_ENT(ThunkOrdinal, Standard),
  230. CV_ENUM_CLASS_ENT(ThunkOrdinal, ThisAdjustor),
  231. CV_ENUM_CLASS_ENT(ThunkOrdinal, Vcall),
  232. CV_ENUM_CLASS_ENT(ThunkOrdinal, Pcode),
  233. CV_ENUM_CLASS_ENT(ThunkOrdinal, UnknownLoad),
  234. CV_ENUM_CLASS_ENT(ThunkOrdinal, TrampIncremental),
  235. CV_ENUM_CLASS_ENT(ThunkOrdinal, BranchIsland),
  236. };
  237. static const EnumEntry<uint16_t> TrampolineNames[] = {
  238. CV_ENUM_CLASS_ENT(TrampolineType, TrampIncremental),
  239. CV_ENUM_CLASS_ENT(TrampolineType, BranchIsland),
  240. };
  241. static const EnumEntry<COFF::SectionCharacteristics>
  242. ImageSectionCharacteristicNames[] = {
  243. CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NOLOAD),
  244. CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NO_PAD),
  245. CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_CODE),
  246. CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_INITIALIZED_DATA),
  247. CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_UNINITIALIZED_DATA),
  248. CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_OTHER),
  249. CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_INFO),
  250. CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_REMOVE),
  251. CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_COMDAT),
  252. CV_ENUM_ENT(COFF, IMAGE_SCN_GPREL),
  253. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PURGEABLE),
  254. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_16BIT),
  255. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_LOCKED),
  256. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PRELOAD),
  257. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1BYTES),
  258. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2BYTES),
  259. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4BYTES),
  260. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8BYTES),
  261. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_16BYTES),
  262. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_32BYTES),
  263. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_64BYTES),
  264. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_128BYTES),
  265. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_256BYTES),
  266. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_512BYTES),
  267. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1024BYTES),
  268. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2048BYTES),
  269. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4096BYTES),
  270. CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8192BYTES),
  271. CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_NRELOC_OVFL),
  272. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_DISCARDABLE),
  273. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_CACHED),
  274. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_PAGED),
  275. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_SHARED),
  276. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_EXECUTE),
  277. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_READ),
  278. CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_WRITE)};
  279. namespace llvm {
  280. namespace codeview {
  281. ArrayRef<EnumEntry<SymbolKind>> getSymbolTypeNames() {
  282. return makeArrayRef(SymbolTypeNames);
  283. }
  284. ArrayRef<EnumEntry<TypeLeafKind>> getTypeLeafNames() {
  285. return makeArrayRef(TypeLeafNames);
  286. }
  287. ArrayRef<EnumEntry<uint16_t>> getRegisterNames(CPUType Cpu) {
  288. if (Cpu == CPUType::ARM64) {
  289. return makeArrayRef(RegisterNames_ARM64);
  290. }
  291. return makeArrayRef(RegisterNames_X86);
  292. }
  293. ArrayRef<EnumEntry<uint32_t>> getPublicSymFlagNames() {
  294. return makeArrayRef(PublicSymFlagNames);
  295. }
  296. ArrayRef<EnumEntry<uint8_t>> getProcSymFlagNames() {
  297. return makeArrayRef(ProcSymFlagNames);
  298. }
  299. ArrayRef<EnumEntry<uint16_t>> getLocalFlagNames() {
  300. return makeArrayRef(LocalFlags);
  301. }
  302. ArrayRef<EnumEntry<uint8_t>> getFrameCookieKindNames() {
  303. return makeArrayRef(FrameCookieKinds);
  304. }
  305. ArrayRef<EnumEntry<SourceLanguage>> getSourceLanguageNames() {
  306. return makeArrayRef(SourceLanguages);
  307. }
  308. ArrayRef<EnumEntry<uint32_t>> getCompileSym2FlagNames() {
  309. return makeArrayRef(CompileSym2FlagNames);
  310. }
  311. ArrayRef<EnumEntry<uint32_t>> getCompileSym3FlagNames() {
  312. return makeArrayRef(CompileSym3FlagNames);
  313. }
  314. ArrayRef<EnumEntry<uint32_t>> getFileChecksumNames() {
  315. return makeArrayRef(FileChecksumNames);
  316. }
  317. ArrayRef<EnumEntry<unsigned>> getCPUTypeNames() {
  318. return makeArrayRef(CPUTypeNames);
  319. }
  320. ArrayRef<EnumEntry<uint32_t>> getFrameProcSymFlagNames() {
  321. return makeArrayRef(FrameProcSymFlagNames);
  322. }
  323. ArrayRef<EnumEntry<uint16_t>> getExportSymFlagNames() {
  324. return makeArrayRef(ExportSymFlagNames);
  325. }
  326. ArrayRef<EnumEntry<uint32_t>> getModuleSubstreamKindNames() {
  327. return makeArrayRef(ModuleSubstreamKindNames);
  328. }
  329. ArrayRef<EnumEntry<uint8_t>> getThunkOrdinalNames() {
  330. return makeArrayRef(ThunkOrdinalNames);
  331. }
  332. ArrayRef<EnumEntry<uint16_t>> getTrampolineNames() {
  333. return makeArrayRef(TrampolineNames);
  334. }
  335. ArrayRef<EnumEntry<COFF::SectionCharacteristics>>
  336. getImageSectionCharacteristicNames() {
  337. return makeArrayRef(ImageSectionCharacteristicNames);
  338. }
  339. } // end namespace codeview
  340. } // end namespace llvm