18456b16eSEugene Zelenko //===- EnumTables.cpp - Enum to string conversion tables ------------------===//
293839cb4SZachary Turner //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
693839cb4SZachary Turner //
793839cb4SZachary Turner //===----------------------------------------------------------------------===//
893839cb4SZachary Turner 
993839cb4SZachary Turner #include "llvm/DebugInfo/CodeView/EnumTables.h"
108456b16eSEugene Zelenko #include "llvm/Support/ScopedPrinter.h"
118456b16eSEugene Zelenko #include <type_traits>
1293839cb4SZachary Turner 
1393839cb4SZachary Turner using namespace llvm;
1493839cb4SZachary Turner using namespace codeview;
1593839cb4SZachary Turner 
1693839cb4SZachary Turner #define CV_ENUM_CLASS_ENT(enum_class, enum)                                    \
1793839cb4SZachary Turner   { #enum, std::underlying_type < enum_class > ::type(enum_class::enum) }
1893839cb4SZachary Turner 
1993839cb4SZachary Turner #define CV_ENUM_ENT(ns, enum)                                                  \
2093839cb4SZachary Turner   { #enum, ns::enum }
2193839cb4SZachary Turner 
2293839cb4SZachary Turner static const EnumEntry<SymbolKind> SymbolTypeNames[] = {
2393839cb4SZachary Turner #define CV_SYMBOL(enum, val) {#enum, enum},
24d427383cSZachary Turner #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
2593839cb4SZachary Turner #undef CV_SYMBOL
2693839cb4SZachary Turner };
2793839cb4SZachary Turner 
28ac5763ecSZachary Turner static const EnumEntry<TypeLeafKind> TypeLeafNames[] = {
29ac5763ecSZachary Turner #define CV_TYPE(name, val) {#name, name},
30d427383cSZachary Turner #include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
31ac5763ecSZachary Turner #undef CV_TYPE
32ac5763ecSZachary Turner };
33ac5763ecSZachary Turner 
34eb4d6142STom Tan static const EnumEntry<uint16_t> RegisterNames_X86[] = {
35eb4d6142STom Tan #define CV_REGISTERS_X86
3666053108SHans Wennborg #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
3766053108SHans Wennborg #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
3866053108SHans Wennborg #undef CV_REGISTER
39eb4d6142STom Tan #undef CV_REGISTERS_X86
40eb4d6142STom Tan };
41eb4d6142STom Tan 
4251892a42SLuqman Aden static const EnumEntry<uint16_t> RegisterNames_ARM[] = {
4351892a42SLuqman Aden #define CV_REGISTERS_ARM
4451892a42SLuqman Aden #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
4551892a42SLuqman Aden #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
4651892a42SLuqman Aden #undef CV_REGISTER
4751892a42SLuqman Aden #undef CV_REGISTERS_ARM
4851892a42SLuqman Aden };
4951892a42SLuqman Aden 
50eb4d6142STom Tan static const EnumEntry<uint16_t> RegisterNames_ARM64[] = {
51eb4d6142STom Tan #define CV_REGISTERS_ARM64
52eb4d6142STom Tan #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
53eb4d6142STom Tan #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
54eb4d6142STom Tan #undef CV_REGISTER
55eb4d6142STom Tan #undef CV_REGISTERS_ARM64
5693839cb4SZachary Turner };
5793839cb4SZachary Turner 
5818d90e17SReid Kleckner static const EnumEntry<uint32_t> PublicSymFlagNames[] = {
5918d90e17SReid Kleckner     CV_ENUM_CLASS_ENT(PublicSymFlags, Code),
6018d90e17SReid Kleckner     CV_ENUM_CLASS_ENT(PublicSymFlags, Function),
6118d90e17SReid Kleckner     CV_ENUM_CLASS_ENT(PublicSymFlags, Managed),
6218d90e17SReid Kleckner     CV_ENUM_CLASS_ENT(PublicSymFlags, MSIL),
6318d90e17SReid Kleckner };
6418d90e17SReid Kleckner 
6593839cb4SZachary Turner static const EnumEntry<uint8_t> ProcSymFlagNames[] = {
6693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, HasFP),
6793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, HasIRET),
6893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, HasFRET),
6993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoReturn),
7093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, IsUnreachable),
7193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, HasCustomCallingConv),
7293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoInline),
7393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ProcSymFlags, HasOptimizedDebugInfo),
7493839cb4SZachary Turner };
7593839cb4SZachary Turner 
7693839cb4SZachary Turner static const EnumEntry<uint16_t> LocalFlags[] = {
7793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsParameter),
7893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAddressTaken),
7993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsCompilerGenerated),
8093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregate),
8193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregated),
8293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAliased),
8393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAlias),
8493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsReturnValue),
8593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsOptimizedOut),
8693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredGlobal),
8793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredStatic),
8893839cb4SZachary Turner };
8993839cb4SZachary Turner 
9033848faaSReid Kleckner static const EnumEntry<uint8_t> FrameCookieKinds[] = {
9193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameCookieKind, Copy),
9293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameCookieKind, XorStackPointer),
9393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameCookieKind, XorFramePointer),
9493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameCookieKind, XorR13),
9593839cb4SZachary Turner };
9693839cb4SZachary Turner 
9793839cb4SZachary Turner static const EnumEntry<codeview::SourceLanguage> SourceLanguages[] = {
9893839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, C),       CV_ENUM_ENT(SourceLanguage, Cpp),
9993839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, Fortran), CV_ENUM_ENT(SourceLanguage, Masm),
10093839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, Pascal),  CV_ENUM_ENT(SourceLanguage, Basic),
10193839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, Cobol),   CV_ENUM_ENT(SourceLanguage, Link),
10293839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, Cvtres),  CV_ENUM_ENT(SourceLanguage, Cvtpgd),
10393839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, CSharp),  CV_ENUM_ENT(SourceLanguage, VB),
10493839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, ILAsm),   CV_ENUM_ENT(SourceLanguage, Java),
10593839cb4SZachary Turner     CV_ENUM_ENT(SourceLanguage, JScript), CV_ENUM_ENT(SourceLanguage, MSIL),
106898ddf61SReid Kleckner     CV_ENUM_ENT(SourceLanguage, HLSL),    CV_ENUM_ENT(SourceLanguage, D),
107*3d10997eSArlo Siemsen     CV_ENUM_ENT(SourceLanguage, Swift),   CV_ENUM_ENT(SourceLanguage, Rust),
10893839cb4SZachary Turner };
10993839cb4SZachary Turner 
11093839cb4SZachary Turner static const EnumEntry<uint32_t> CompileSym2FlagNames[] = {
11193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, EC),
11293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDbgInfo),
11393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, LTCG),
11493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDataAlign),
11593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, ManagedPresent),
11693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, SecurityChecks),
11793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, HotPatch),
11893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, CVTCIL),
11993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym2Flags, MSILModule),
12093839cb4SZachary Turner };
12193839cb4SZachary Turner 
12293839cb4SZachary Turner static const EnumEntry<uint32_t> CompileSym3FlagNames[] = {
12393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, EC),
12493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDbgInfo),
12593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, LTCG),
12693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDataAlign),
12793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, ManagedPresent),
12893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, SecurityChecks),
12993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, HotPatch),
13093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, CVTCIL),
13193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, MSILModule),
13293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, Sdl),
13393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, PGO),
13493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CompileSym3Flags, Exp),
13593839cb4SZachary Turner };
13693839cb4SZachary Turner 
137d0563f29SZachary Turner static const EnumEntry<uint32_t> FileChecksumNames[] = {
138d0563f29SZachary Turner     CV_ENUM_CLASS_ENT(FileChecksumKind, None),
139d0563f29SZachary Turner     CV_ENUM_CLASS_ENT(FileChecksumKind, MD5),
140d0563f29SZachary Turner     CV_ENUM_CLASS_ENT(FileChecksumKind, SHA1),
141d0563f29SZachary Turner     CV_ENUM_CLASS_ENT(FileChecksumKind, SHA256),
142d0563f29SZachary Turner };
143d0563f29SZachary Turner 
14493839cb4SZachary Turner static const EnumEntry<unsigned> CPUTypeNames[] = {
14593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Intel8080),
14693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Intel8086),
14793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Intel80286),
14893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Intel80386),
14993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Intel80486),
15093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Pentium),
15193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, PentiumPro),
15293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Pentium3),
15393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPS),
15493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPS16),
15593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPS32),
15693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPS64),
15793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPSI),
15893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPSII),
15993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPSIII),
16093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPSIV),
16193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, MIPSV),
16293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, M68000),
16393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, M68010),
16493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, M68020),
16593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, M68030),
16693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, M68040),
16793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Alpha),
16893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Alpha21164),
16993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Alpha21164A),
17093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Alpha21264),
17193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Alpha21364),
17293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, PPC601),
17393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, PPC603),
17493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, PPC604),
17593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, PPC620),
17693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, PPCFP),
17793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, PPCBE),
17893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, SH3),
17993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, SH3E),
18093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, SH3DSP),
18193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, SH4),
18293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, SHMedia),
18393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM3),
18493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM4),
18593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM4T),
18693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM5),
18793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM5T),
18893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM6),
18993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM_XMAC),
19093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM_WMMX),
19193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARM7),
19293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Omni),
19393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Ia64),
19493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Ia64_2),
19593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, CEE),
19693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, AM33),
19793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, M32R),
19893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, TriCore),
19993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, X64),
20093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, EBC),
20193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, Thumb),
20293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, ARMNT),
20345f8946aSMartin Storsjö     CV_ENUM_CLASS_ENT(CPUType, ARM64),
204d20b013bSMartin Storsjö     CV_ENUM_CLASS_ENT(CPUType, HybridX86ARM64),
205d20b013bSMartin Storsjö     CV_ENUM_CLASS_ENT(CPUType, ARM64EC),
206d20b013bSMartin Storsjö     CV_ENUM_CLASS_ENT(CPUType, ARM64X),
20793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(CPUType, D3D11_Shader),
20893839cb4SZachary Turner };
20993839cb4SZachary Turner 
21093839cb4SZachary Turner static const EnumEntry<uint32_t> FrameProcSymFlagNames[] = {
21193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasAlloca),
21293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasSetJmp),
21393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasLongJmp),
21493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasInlineAssembly),
21593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasExceptionHandling),
21693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, MarkedInline),
21793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasStructuredExceptionHandling),
21893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, Naked),
21993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, SecurityChecks),
22093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, AsynchronousExceptionHandling),
22193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, NoStackOrderingForSecurityChecks),
22293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, Inlined),
22393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, StrictSecurityChecks),
22493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, SafeBuffers),
225a6f64265SReid Kleckner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedLocalBasePointerMask),
226a6f64265SReid Kleckner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedParamBasePointerMask),
22793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, ProfileGuidedOptimization),
22893839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, ValidProfileCounts),
22993839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, OptimizedForSpeed),
23093839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfg),
23193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfw),
23293839cb4SZachary Turner };
23393839cb4SZachary Turner 
2347eb6d358SZachary Turner static const EnumEntry<uint32_t> ModuleSubstreamKindNames[] = {
2358c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, None),
2368c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, Symbols),
2378c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, Lines),
2388c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, StringTable),
2398c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, FileChecksums),
2408c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, FrameData),
2418c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, InlineeLines),
2428c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeImports),
2438c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeExports),
2448c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, ILLines),
2458c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, FuncMDTokenMap),
2468c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, TypeMDTokenMap),
2478c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, MergedAssemblyInput),
2488c099fe0SZachary Turner     CV_ENUM_CLASS_ENT(DebugSubsectionKind, CoffSymbolRVA),
2497eb6d358SZachary Turner };
2507eb6d358SZachary Turner 
25193839cb4SZachary Turner static const EnumEntry<uint16_t> ExportSymFlagNames[] = {
25293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ExportFlags, IsConstant),
25393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ExportFlags, IsData),
25493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ExportFlags, IsPrivate),
25593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ExportFlags, HasNoName),
25693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ExportFlags, HasExplicitOrdinal),
25793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ExportFlags, IsForwarder),
25893839cb4SZachary Turner };
25993839cb4SZachary Turner 
26093839cb4SZachary Turner static const EnumEntry<uint8_t> ThunkOrdinalNames[] = {
26193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ThunkOrdinal, Standard),
26293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ThunkOrdinal, ThisAdjustor),
26393839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ThunkOrdinal, Vcall),
26493839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ThunkOrdinal, Pcode),
26593839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ThunkOrdinal, UnknownLoad),
26693839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ThunkOrdinal, TrampIncremental),
26793839cb4SZachary Turner     CV_ENUM_CLASS_ENT(ThunkOrdinal, BranchIsland),
26893839cb4SZachary Turner };
26993839cb4SZachary Turner 
27093839cb4SZachary Turner static const EnumEntry<uint16_t> TrampolineNames[] = {
27193839cb4SZachary Turner     CV_ENUM_CLASS_ENT(TrampolineType, TrampIncremental),
27293839cb4SZachary Turner     CV_ENUM_CLASS_ENT(TrampolineType, BranchIsland),
27393839cb4SZachary Turner };
27493839cb4SZachary Turner 
27593839cb4SZachary Turner static const EnumEntry<COFF::SectionCharacteristics>
27693839cb4SZachary Turner     ImageSectionCharacteristicNames[] = {
27793839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NOLOAD),
27893839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NO_PAD),
27993839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_CODE),
28093839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_INITIALIZED_DATA),
28193839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_UNINITIALIZED_DATA),
28293839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_OTHER),
28393839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_INFO),
28493839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_REMOVE),
28593839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_COMDAT),
28693839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_GPREL),
28793839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PURGEABLE),
28893839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_16BIT),
28993839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_LOCKED),
29093839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PRELOAD),
29193839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1BYTES),
29293839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2BYTES),
29393839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4BYTES),
29493839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8BYTES),
29593839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_16BYTES),
29693839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_32BYTES),
29793839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_64BYTES),
29893839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_128BYTES),
29993839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_256BYTES),
30093839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_512BYTES),
30193839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1024BYTES),
30293839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2048BYTES),
30393839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4096BYTES),
30493839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8192BYTES),
30593839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_NRELOC_OVFL),
30693839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_DISCARDABLE),
30793839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_CACHED),
30893839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_PAGED),
30993839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_SHARED),
31093839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_EXECUTE),
31193839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_READ),
31293839cb4SZachary Turner         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_WRITE)};
31393839cb4SZachary Turner 
314ac3851c4SNilanjana Basu static const EnumEntry<uint16_t> ClassOptionNames[] = {
315ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, Packed),
316ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, HasConstructorOrDestructor),
317ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, HasOverloadedOperator),
318ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, Nested),
319ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, ContainsNestedClass),
320ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, HasOverloadedAssignmentOperator),
321ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, HasConversionOperator),
322ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, ForwardReference),
323ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, Scoped),
324ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, HasUniqueName),
325ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, Sealed),
326ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ClassOptions, Intrinsic),
327ac3851c4SNilanjana Basu };
328ac3851c4SNilanjana Basu 
329ac3851c4SNilanjana Basu static const EnumEntry<uint8_t> MemberAccessNames[] = {
330ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MemberAccess, None),
331ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MemberAccess, Private),
332ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MemberAccess, Protected),
333ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MemberAccess, Public),
334ac3851c4SNilanjana Basu };
335ac3851c4SNilanjana Basu 
336ac3851c4SNilanjana Basu static const EnumEntry<uint16_t> MethodOptionNames[] = {
337ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodOptions, Pseudo),
338ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodOptions, NoInherit),
339ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodOptions, NoConstruct),
340ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodOptions, CompilerGenerated),
341ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodOptions, Sealed),
342ac3851c4SNilanjana Basu };
343ac3851c4SNilanjana Basu 
344ac3851c4SNilanjana Basu static const EnumEntry<uint16_t> MemberKindNames[] = {
345ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodKind, Vanilla),
346ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodKind, Virtual),
347ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodKind, Static),
348ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodKind, Friend),
349ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodKind, IntroducingVirtual),
350ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodKind, PureVirtual),
351ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(MethodKind, PureIntroducingVirtual),
352ac3851c4SNilanjana Basu };
353ac3851c4SNilanjana Basu 
354ac3851c4SNilanjana Basu static const EnumEntry<uint8_t> PtrKindNames[] = {
355ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, Near16),
356ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, Far16),
357ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, Huge16),
358ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegment),
359ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, BasedOnValue),
360ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegmentValue),
361ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, BasedOnAddress),
362ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegmentAddress),
363ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, BasedOnType),
364ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, BasedOnSelf),
365ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, Near32),
366ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, Far32),
367ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerKind, Near64),
368ac3851c4SNilanjana Basu };
369ac3851c4SNilanjana Basu 
370ac3851c4SNilanjana Basu static const EnumEntry<uint8_t> PtrModeNames[] = {
371ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerMode, Pointer),
372ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerMode, LValueReference),
373ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerMode, PointerToDataMember),
374ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerMode, PointerToMemberFunction),
375ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerMode, RValueReference),
376ac3851c4SNilanjana Basu };
377ac3851c4SNilanjana Basu 
378ac3851c4SNilanjana Basu static const EnumEntry<uint16_t> PtrMemberRepNames[] = {
379ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, Unknown),
380ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, SingleInheritanceData),
381ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, MultipleInheritanceData),
382ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, VirtualInheritanceData),
383ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, GeneralData),
384ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, SingleInheritanceFunction),
385ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation,
386ac3851c4SNilanjana Basu                       MultipleInheritanceFunction),
387ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation,
388ac3851c4SNilanjana Basu                       VirtualInheritanceFunction),
389ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, GeneralFunction),
390ac3851c4SNilanjana Basu };
391ac3851c4SNilanjana Basu 
392ac3851c4SNilanjana Basu static const EnumEntry<uint16_t> TypeModifierNames[] = {
393ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ModifierOptions, Const),
394ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ModifierOptions, Volatile),
395ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(ModifierOptions, Unaligned),
396ac3851c4SNilanjana Basu };
397ac3851c4SNilanjana Basu 
398ac3851c4SNilanjana Basu static const EnumEntry<uint8_t> CallingConventions[] = {
399ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, NearC),
400ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, FarC),
401ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, NearPascal),
402ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, FarPascal),
403ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, NearFast),
404ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, FarFast),
405ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, NearStdCall),
406ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, FarStdCall),
407ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, NearSysCall),
408ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, FarSysCall),
409ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, ThisCall),
410ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, MipsCall),
411ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, Generic),
412ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, AlphaCall),
413ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, PpcCall),
414ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, SHCall),
415ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, ArmCall),
416ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, AM33Call),
417ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, TriCall),
418ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, SH5Call),
419ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, M32RCall),
420ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, ClrCall),
421ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, Inline),
422ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(CallingConvention, NearVector),
423ac3851c4SNilanjana Basu };
424ac3851c4SNilanjana Basu 
425ac3851c4SNilanjana Basu static const EnumEntry<uint8_t> FunctionOptionEnum[] = {
426ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(FunctionOptions, CxxReturnUdt),
427ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(FunctionOptions, Constructor),
428ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(FunctionOptions, ConstructorWithVirtualBases),
429ac3851c4SNilanjana Basu };
430ac3851c4SNilanjana Basu 
431ac3851c4SNilanjana Basu static const EnumEntry<uint16_t> LabelTypeEnum[] = {
432ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(LabelType, Near),
433ac3851c4SNilanjana Basu     CV_ENUM_CLASS_ENT(LabelType, Far),
434ac3851c4SNilanjana Basu };
435ac3851c4SNilanjana Basu 
43693839cb4SZachary Turner namespace llvm {
43793839cb4SZachary Turner namespace codeview {
4388456b16eSEugene Zelenko 
getSymbolTypeNames()43993839cb4SZachary Turner ArrayRef<EnumEntry<SymbolKind>> getSymbolTypeNames() {
44093839cb4SZachary Turner   return makeArrayRef(SymbolTypeNames);
44193839cb4SZachary Turner }
44293839cb4SZachary Turner 
getTypeLeafNames()443ac5763ecSZachary Turner ArrayRef<EnumEntry<TypeLeafKind>> getTypeLeafNames() {
444ac5763ecSZachary Turner   return makeArrayRef(TypeLeafNames);
445ac5763ecSZachary Turner }
446ac5763ecSZachary Turner 
getRegisterNames(CPUType Cpu)447eb4d6142STom Tan ArrayRef<EnumEntry<uint16_t>> getRegisterNames(CPUType Cpu) {
44851892a42SLuqman Aden   if (Cpu == CPUType::ARMNT) {
44951892a42SLuqman Aden     return makeArrayRef(RegisterNames_ARM);
45051892a42SLuqman Aden   } else if (Cpu == CPUType::ARM64) {
451eb4d6142STom Tan     return makeArrayRef(RegisterNames_ARM64);
452eb4d6142STom Tan   }
453eb4d6142STom Tan   return makeArrayRef(RegisterNames_X86);
45493839cb4SZachary Turner }
45593839cb4SZachary Turner 
getPublicSymFlagNames()45618d90e17SReid Kleckner ArrayRef<EnumEntry<uint32_t>> getPublicSymFlagNames() {
45718d90e17SReid Kleckner   return makeArrayRef(PublicSymFlagNames);
45818d90e17SReid Kleckner }
4598456b16eSEugene Zelenko 
getProcSymFlagNames()46093839cb4SZachary Turner ArrayRef<EnumEntry<uint8_t>> getProcSymFlagNames() {
46193839cb4SZachary Turner   return makeArrayRef(ProcSymFlagNames);
46293839cb4SZachary Turner }
4638456b16eSEugene Zelenko 
getLocalFlagNames()46493839cb4SZachary Turner ArrayRef<EnumEntry<uint16_t>> getLocalFlagNames() {
46593839cb4SZachary Turner   return makeArrayRef(LocalFlags);
46693839cb4SZachary Turner }
4678456b16eSEugene Zelenko 
getFrameCookieKindNames()46833848faaSReid Kleckner ArrayRef<EnumEntry<uint8_t>> getFrameCookieKindNames() {
46993839cb4SZachary Turner   return makeArrayRef(FrameCookieKinds);
47093839cb4SZachary Turner }
4718456b16eSEugene Zelenko 
getSourceLanguageNames()47293839cb4SZachary Turner ArrayRef<EnumEntry<SourceLanguage>> getSourceLanguageNames() {
47393839cb4SZachary Turner   return makeArrayRef(SourceLanguages);
47493839cb4SZachary Turner }
4758456b16eSEugene Zelenko 
getCompileSym2FlagNames()47693839cb4SZachary Turner ArrayRef<EnumEntry<uint32_t>> getCompileSym2FlagNames() {
47793839cb4SZachary Turner   return makeArrayRef(CompileSym2FlagNames);
47893839cb4SZachary Turner }
4798456b16eSEugene Zelenko 
getCompileSym3FlagNames()48093839cb4SZachary Turner ArrayRef<EnumEntry<uint32_t>> getCompileSym3FlagNames() {
48193839cb4SZachary Turner   return makeArrayRef(CompileSym3FlagNames);
48293839cb4SZachary Turner }
4838456b16eSEugene Zelenko 
getFileChecksumNames()484d0563f29SZachary Turner ArrayRef<EnumEntry<uint32_t>> getFileChecksumNames() {
485d0563f29SZachary Turner   return makeArrayRef(FileChecksumNames);
486d0563f29SZachary Turner }
4878456b16eSEugene Zelenko 
getCPUTypeNames()48893839cb4SZachary Turner ArrayRef<EnumEntry<unsigned>> getCPUTypeNames() {
48993839cb4SZachary Turner   return makeArrayRef(CPUTypeNames);
49093839cb4SZachary Turner }
4918456b16eSEugene Zelenko 
getFrameProcSymFlagNames()49293839cb4SZachary Turner ArrayRef<EnumEntry<uint32_t>> getFrameProcSymFlagNames() {
49393839cb4SZachary Turner   return makeArrayRef(FrameProcSymFlagNames);
49493839cb4SZachary Turner }
4958456b16eSEugene Zelenko 
getExportSymFlagNames()49693839cb4SZachary Turner ArrayRef<EnumEntry<uint16_t>> getExportSymFlagNames() {
49793839cb4SZachary Turner   return makeArrayRef(ExportSymFlagNames);
49893839cb4SZachary Turner }
4998456b16eSEugene Zelenko 
getModuleSubstreamKindNames()5007eb6d358SZachary Turner ArrayRef<EnumEntry<uint32_t>> getModuleSubstreamKindNames() {
5017eb6d358SZachary Turner   return makeArrayRef(ModuleSubstreamKindNames);
5027eb6d358SZachary Turner }
5038456b16eSEugene Zelenko 
getThunkOrdinalNames()50493839cb4SZachary Turner ArrayRef<EnumEntry<uint8_t>> getThunkOrdinalNames() {
50593839cb4SZachary Turner   return makeArrayRef(ThunkOrdinalNames);
50693839cb4SZachary Turner }
5078456b16eSEugene Zelenko 
getTrampolineNames()50893839cb4SZachary Turner ArrayRef<EnumEntry<uint16_t>> getTrampolineNames() {
50993839cb4SZachary Turner   return makeArrayRef(TrampolineNames);
51093839cb4SZachary Turner }
5118456b16eSEugene Zelenko 
51293839cb4SZachary Turner ArrayRef<EnumEntry<COFF::SectionCharacteristics>>
getImageSectionCharacteristicNames()51393839cb4SZachary Turner getImageSectionCharacteristicNames() {
51493839cb4SZachary Turner   return makeArrayRef(ImageSectionCharacteristicNames);
51593839cb4SZachary Turner }
5168456b16eSEugene Zelenko 
getClassOptionNames()517ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint16_t>> getClassOptionNames() {
518ac3851c4SNilanjana Basu   return makeArrayRef(ClassOptionNames);
519ac3851c4SNilanjana Basu }
520ac3851c4SNilanjana Basu 
getMemberAccessNames()521ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint8_t>> getMemberAccessNames() {
522ac3851c4SNilanjana Basu   return makeArrayRef(MemberAccessNames);
523ac3851c4SNilanjana Basu }
524ac3851c4SNilanjana Basu 
getMethodOptionNames()525ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint16_t>> getMethodOptionNames() {
526ac3851c4SNilanjana Basu   return makeArrayRef(MethodOptionNames);
527ac3851c4SNilanjana Basu }
528ac3851c4SNilanjana Basu 
getMemberKindNames()529ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint16_t>> getMemberKindNames() {
530ac3851c4SNilanjana Basu   return makeArrayRef(MemberKindNames);
531ac3851c4SNilanjana Basu }
532ac3851c4SNilanjana Basu 
getPtrKindNames()533ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint8_t>> getPtrKindNames() {
534ac3851c4SNilanjana Basu   return makeArrayRef(PtrKindNames);
535ac3851c4SNilanjana Basu }
536ac3851c4SNilanjana Basu 
getPtrModeNames()537ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint8_t>> getPtrModeNames() {
538ac3851c4SNilanjana Basu   return makeArrayRef(PtrModeNames);
539ac3851c4SNilanjana Basu }
540ac3851c4SNilanjana Basu 
getPtrMemberRepNames()541ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint16_t>> getPtrMemberRepNames() {
542ac3851c4SNilanjana Basu   return makeArrayRef(PtrMemberRepNames);
543ac3851c4SNilanjana Basu }
544ac3851c4SNilanjana Basu 
getTypeModifierNames()545ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint16_t>> getTypeModifierNames() {
546ac3851c4SNilanjana Basu   return makeArrayRef(TypeModifierNames);
547ac3851c4SNilanjana Basu }
548ac3851c4SNilanjana Basu 
getCallingConventions()549ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint8_t>> getCallingConventions() {
550ac3851c4SNilanjana Basu   return makeArrayRef(CallingConventions);
551ac3851c4SNilanjana Basu }
552ac3851c4SNilanjana Basu 
getFunctionOptionEnum()553ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint8_t>> getFunctionOptionEnum() {
554ac3851c4SNilanjana Basu   return makeArrayRef(FunctionOptionEnum);
555ac3851c4SNilanjana Basu }
556ac3851c4SNilanjana Basu 
getLabelTypeEnum()557ac3851c4SNilanjana Basu ArrayRef<EnumEntry<uint16_t>> getLabelTypeEnum() {
558ac3851c4SNilanjana Basu   return makeArrayRef(LabelTypeEnum);
559ac3851c4SNilanjana Basu }
560ac3851c4SNilanjana Basu 
5618456b16eSEugene Zelenko } // end namespace codeview
5628456b16eSEugene Zelenko } // end namespace llvm
563