19df3605dSDimitry Andric //===- EnumTables.cpp - Enum to string conversion tables ------------------===//
201095a5dSDimitry Andric //
3e6d15924SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4e6d15924SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5e6d15924SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
601095a5dSDimitry Andric //
701095a5dSDimitry Andric //===----------------------------------------------------------------------===//
801095a5dSDimitry Andric
901095a5dSDimitry Andric #include "llvm/DebugInfo/CodeView/EnumTables.h"
109df3605dSDimitry Andric #include "llvm/Support/ScopedPrinter.h"
119df3605dSDimitry Andric #include <type_traits>
1201095a5dSDimitry Andric
1301095a5dSDimitry Andric using namespace llvm;
1401095a5dSDimitry Andric using namespace codeview;
1501095a5dSDimitry Andric
1601095a5dSDimitry Andric #define CV_ENUM_CLASS_ENT(enum_class, enum) \
17e3b55780SDimitry Andric { #enum, std::underlying_type_t<enum_class>(enum_class::enum) }
1801095a5dSDimitry Andric
1901095a5dSDimitry Andric #define CV_ENUM_ENT(ns, enum) \
2001095a5dSDimitry Andric { #enum, ns::enum }
2101095a5dSDimitry Andric
2201095a5dSDimitry Andric static const EnumEntry<SymbolKind> SymbolTypeNames[] = {
2301095a5dSDimitry Andric #define CV_SYMBOL(enum, val) {#enum, enum},
24f382538dSDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
2501095a5dSDimitry Andric #undef CV_SYMBOL
2601095a5dSDimitry Andric };
2701095a5dSDimitry Andric
28b915e9e0SDimitry Andric static const EnumEntry<TypeLeafKind> TypeLeafNames[] = {
29b915e9e0SDimitry Andric #define CV_TYPE(name, val) {#name, name},
30f382538dSDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
31b915e9e0SDimitry Andric #undef CV_TYPE
32b915e9e0SDimitry Andric };
33b915e9e0SDimitry Andric
34e6d15924SDimitry Andric static const EnumEntry<uint16_t> RegisterNames_X86[] = {
35e6d15924SDimitry Andric #define CV_REGISTERS_X86
36044eb2f6SDimitry Andric #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
37044eb2f6SDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
38044eb2f6SDimitry Andric #undef CV_REGISTER
39e6d15924SDimitry Andric #undef CV_REGISTERS_X86
40e6d15924SDimitry Andric };
41e6d15924SDimitry Andric
42b60736ecSDimitry Andric static const EnumEntry<uint16_t> RegisterNames_ARM[] = {
43b60736ecSDimitry Andric #define CV_REGISTERS_ARM
44b60736ecSDimitry Andric #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
45b60736ecSDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
46b60736ecSDimitry Andric #undef CV_REGISTER
47b60736ecSDimitry Andric #undef CV_REGISTERS_ARM
48b60736ecSDimitry Andric };
49b60736ecSDimitry Andric
50e6d15924SDimitry Andric static const EnumEntry<uint16_t> RegisterNames_ARM64[] = {
51e6d15924SDimitry Andric #define CV_REGISTERS_ARM64
52e6d15924SDimitry Andric #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
53e6d15924SDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
54e6d15924SDimitry Andric #undef CV_REGISTER
55e6d15924SDimitry Andric #undef CV_REGISTERS_ARM64
5601095a5dSDimitry Andric };
5701095a5dSDimitry Andric
5808bbd35aSDimitry Andric static const EnumEntry<uint32_t> PublicSymFlagNames[] = {
5908bbd35aSDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, Code),
6008bbd35aSDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, Function),
6108bbd35aSDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, Managed),
6208bbd35aSDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, MSIL),
6308bbd35aSDimitry Andric };
6408bbd35aSDimitry Andric
6501095a5dSDimitry Andric static const EnumEntry<uint8_t> ProcSymFlagNames[] = {
6601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasFP),
6701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasIRET),
6801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasFRET),
6901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoReturn),
7001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, IsUnreachable),
7101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasCustomCallingConv),
7201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoInline),
7301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasOptimizedDebugInfo),
7401095a5dSDimitry Andric };
7501095a5dSDimitry Andric
7601095a5dSDimitry Andric static const EnumEntry<uint16_t> LocalFlags[] = {
7701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsParameter),
7801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAddressTaken),
7901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsCompilerGenerated),
8001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregate),
8101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregated),
8201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAliased),
8301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAlias),
8401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsReturnValue),
8501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsOptimizedOut),
8601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredGlobal),
8701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredStatic),
8801095a5dSDimitry Andric };
8901095a5dSDimitry Andric
9001095a5dSDimitry Andric static const EnumEntry<uint8_t> FrameCookieKinds[] = {
9101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, Copy),
9201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, XorStackPointer),
9301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, XorFramePointer),
9401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, XorR13),
9501095a5dSDimitry Andric };
9601095a5dSDimitry Andric
9701095a5dSDimitry Andric static const EnumEntry<codeview::SourceLanguage> SourceLanguages[] = {
9801095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, C), CV_ENUM_ENT(SourceLanguage, Cpp),
9901095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, Fortran), CV_ENUM_ENT(SourceLanguage, Masm),
10001095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, Pascal), CV_ENUM_ENT(SourceLanguage, Basic),
10101095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, Cobol), CV_ENUM_ENT(SourceLanguage, Link),
10201095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, Cvtres), CV_ENUM_ENT(SourceLanguage, Cvtpgd),
10301095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, CSharp), CV_ENUM_ENT(SourceLanguage, VB),
10401095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, ILAsm), CV_ENUM_ENT(SourceLanguage, Java),
10501095a5dSDimitry Andric CV_ENUM_ENT(SourceLanguage, JScript), CV_ENUM_ENT(SourceLanguage, MSIL),
106044eb2f6SDimitry Andric CV_ENUM_ENT(SourceLanguage, HLSL), CV_ENUM_ENT(SourceLanguage, D),
1076f8fc217SDimitry Andric CV_ENUM_ENT(SourceLanguage, Swift), CV_ENUM_ENT(SourceLanguage, Rust),
1087fa27ce4SDimitry Andric CV_ENUM_ENT(SourceLanguage, ObjC), CV_ENUM_ENT(SourceLanguage, ObjCpp),
109ac9a064cSDimitry Andric CV_ENUM_ENT(SourceLanguage, AliasObj), CV_ENUM_ENT(SourceLanguage, Go),
110ac9a064cSDimitry Andric {"Swift", SourceLanguage::OldSwift},
11101095a5dSDimitry Andric };
11201095a5dSDimitry Andric
11301095a5dSDimitry Andric static const EnumEntry<uint32_t> CompileSym2FlagNames[] = {
11401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, EC),
11501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDbgInfo),
11601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, LTCG),
11701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDataAlign),
11801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, ManagedPresent),
11901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, SecurityChecks),
12001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, HotPatch),
12101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, CVTCIL),
12201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, MSILModule),
12301095a5dSDimitry Andric };
12401095a5dSDimitry Andric
12501095a5dSDimitry Andric static const EnumEntry<uint32_t> CompileSym3FlagNames[] = {
12601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, EC),
12701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDbgInfo),
12801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, LTCG),
12901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDataAlign),
13001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, ManagedPresent),
13101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, SecurityChecks),
13201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, HotPatch),
13301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, CVTCIL),
13401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, MSILModule),
13501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, Sdl),
13601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, PGO),
13701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, Exp),
13801095a5dSDimitry Andric };
13901095a5dSDimitry Andric
14001095a5dSDimitry Andric static const EnumEntry<uint32_t> FileChecksumNames[] = {
14101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, None),
14201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, MD5),
14301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, SHA1),
14401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, SHA256),
14501095a5dSDimitry Andric };
14601095a5dSDimitry Andric
14701095a5dSDimitry Andric static const EnumEntry<unsigned> CPUTypeNames[] = {
14801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel8080),
14901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel8086),
15001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel80286),
15101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel80386),
15201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel80486),
15301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Pentium),
15401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PentiumPro),
15501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Pentium3),
15601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS),
15701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS16),
15801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS32),
15901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS64),
16001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSI),
16101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSII),
16201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSIII),
16301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSIV),
16401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSV),
16501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68000),
16601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68010),
16701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68020),
16801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68030),
16901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68040),
17001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha),
17101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21164),
17201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21164A),
17301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21264),
17401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21364),
17501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC601),
17601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC603),
17701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC604),
17801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC620),
17901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPCFP),
18001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPCBE),
18101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH3),
18201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH3E),
18301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH3DSP),
18401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH4),
18501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SHMedia),
18601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM3),
18701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM4),
18801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM4T),
18901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM5),
19001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM5T),
19101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM6),
19201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM_XMAC),
19301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM_WMMX),
19401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM7),
19501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Omni),
19601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Ia64),
19701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Ia64_2),
19801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, CEE),
19901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, AM33),
20001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M32R),
20101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, TriCore),
20201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, X64),
20301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, EBC),
20401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Thumb),
20501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARMNT),
206344a3780SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM64),
207344a3780SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, HybridX86ARM64),
208344a3780SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM64EC),
209344a3780SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM64X),
210ac9a064cSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Unknown),
21101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(CPUType, D3D11_Shader),
21201095a5dSDimitry Andric };
21301095a5dSDimitry Andric
21401095a5dSDimitry Andric static const EnumEntry<uint32_t> FrameProcSymFlagNames[] = {
21501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasAlloca),
21601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasSetJmp),
21701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasLongJmp),
21801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasInlineAssembly),
21901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasExceptionHandling),
22001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, MarkedInline),
22101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasStructuredExceptionHandling),
22201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, Naked),
22301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, SecurityChecks),
22401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, AsynchronousExceptionHandling),
22501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, NoStackOrderingForSecurityChecks),
22601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, Inlined),
22701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, StrictSecurityChecks),
22801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, SafeBuffers),
229d8e91e46SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedLocalBasePointerMask),
230d8e91e46SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedParamBasePointerMask),
23101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, ProfileGuidedOptimization),
23201095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, ValidProfileCounts),
23301095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, OptimizedForSpeed),
23401095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfg),
23501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfw),
23601095a5dSDimitry Andric };
23701095a5dSDimitry Andric
23801095a5dSDimitry Andric static const EnumEntry<uint32_t> ModuleSubstreamKindNames[] = {
239ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, None),
240ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, Symbols),
241ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, Lines),
242ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, StringTable),
243ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, FileChecksums),
244ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, FrameData),
245ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, InlineeLines),
246ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeImports),
247ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeExports),
248ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, ILLines),
249ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, FuncMDTokenMap),
250ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, TypeMDTokenMap),
251ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, MergedAssemblyInput),
252ee2f195dSDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, CoffSymbolRVA),
25301095a5dSDimitry Andric };
25401095a5dSDimitry Andric
25501095a5dSDimitry Andric static const EnumEntry<uint16_t> ExportSymFlagNames[] = {
25601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsConstant),
25701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsData),
25801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsPrivate),
25901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, HasNoName),
26001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, HasExplicitOrdinal),
26101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsForwarder),
26201095a5dSDimitry Andric };
26301095a5dSDimitry Andric
26401095a5dSDimitry Andric static const EnumEntry<uint8_t> ThunkOrdinalNames[] = {
26501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, Standard),
26601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, ThisAdjustor),
26701095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, Vcall),
26801095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, Pcode),
26901095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, UnknownLoad),
27001095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, TrampIncremental),
27101095a5dSDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, BranchIsland),
27201095a5dSDimitry Andric };
27301095a5dSDimitry Andric
27401095a5dSDimitry Andric static const EnumEntry<uint16_t> TrampolineNames[] = {
27501095a5dSDimitry Andric CV_ENUM_CLASS_ENT(TrampolineType, TrampIncremental),
27601095a5dSDimitry Andric CV_ENUM_CLASS_ENT(TrampolineType, BranchIsland),
27701095a5dSDimitry Andric };
27801095a5dSDimitry Andric
27901095a5dSDimitry Andric static const EnumEntry<COFF::SectionCharacteristics>
28001095a5dSDimitry Andric ImageSectionCharacteristicNames[] = {
28101095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NOLOAD),
28201095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NO_PAD),
28301095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_CODE),
28401095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_INITIALIZED_DATA),
28501095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_UNINITIALIZED_DATA),
28601095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_OTHER),
28701095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_INFO),
28801095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_REMOVE),
28901095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_COMDAT),
29001095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_GPREL),
29101095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PURGEABLE),
29201095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_16BIT),
29301095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_LOCKED),
29401095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PRELOAD),
29501095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1BYTES),
29601095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2BYTES),
29701095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4BYTES),
29801095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8BYTES),
29901095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_16BYTES),
30001095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_32BYTES),
30101095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_64BYTES),
30201095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_128BYTES),
30301095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_256BYTES),
30401095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_512BYTES),
30501095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1024BYTES),
30601095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2048BYTES),
30701095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4096BYTES),
30801095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8192BYTES),
30901095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_NRELOC_OVFL),
31001095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_DISCARDABLE),
31101095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_CACHED),
31201095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_PAGED),
31301095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_SHARED),
31401095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_EXECUTE),
31501095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_READ),
31601095a5dSDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_WRITE)};
31701095a5dSDimitry Andric
3181d5ae102SDimitry Andric static const EnumEntry<uint16_t> ClassOptionNames[] = {
3191d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Packed),
3201d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasConstructorOrDestructor),
3211d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasOverloadedOperator),
3221d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Nested),
3231d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, ContainsNestedClass),
3241d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasOverloadedAssignmentOperator),
3251d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasConversionOperator),
3261d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, ForwardReference),
3271d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Scoped),
3281d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasUniqueName),
3291d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Sealed),
3301d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Intrinsic),
3311d5ae102SDimitry Andric };
3321d5ae102SDimitry Andric
3331d5ae102SDimitry Andric static const EnumEntry<uint8_t> MemberAccessNames[] = {
3341d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, None),
3351d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, Private),
3361d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, Protected),
3371d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, Public),
3381d5ae102SDimitry Andric };
3391d5ae102SDimitry Andric
3401d5ae102SDimitry Andric static const EnumEntry<uint16_t> MethodOptionNames[] = {
3411d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, Pseudo),
3421d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, NoInherit),
3431d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, NoConstruct),
3441d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, CompilerGenerated),
3451d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, Sealed),
3461d5ae102SDimitry Andric };
3471d5ae102SDimitry Andric
3481d5ae102SDimitry Andric static const EnumEntry<uint16_t> MemberKindNames[] = {
3491d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Vanilla),
3501d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Virtual),
3511d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Static),
3521d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Friend),
3531d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, IntroducingVirtual),
3541d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, PureVirtual),
3551d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, PureIntroducingVirtual),
3561d5ae102SDimitry Andric };
3571d5ae102SDimitry Andric
3581d5ae102SDimitry Andric static const EnumEntry<uint8_t> PtrKindNames[] = {
3591d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Near16),
3601d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Far16),
3611d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Huge16),
3621d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegment),
3631d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnValue),
3641d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegmentValue),
3651d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnAddress),
3661d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegmentAddress),
3671d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnType),
3681d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSelf),
3691d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Near32),
3701d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Far32),
3711d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Near64),
3721d5ae102SDimitry Andric };
3731d5ae102SDimitry Andric
3741d5ae102SDimitry Andric static const EnumEntry<uint8_t> PtrModeNames[] = {
3751d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, Pointer),
3761d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, LValueReference),
3771d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, PointerToDataMember),
3781d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, PointerToMemberFunction),
3791d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, RValueReference),
3801d5ae102SDimitry Andric };
3811d5ae102SDimitry Andric
3821d5ae102SDimitry Andric static const EnumEntry<uint16_t> PtrMemberRepNames[] = {
3831d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, Unknown),
3841d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, SingleInheritanceData),
3851d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, MultipleInheritanceData),
3861d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, VirtualInheritanceData),
3871d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, GeneralData),
3881d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, SingleInheritanceFunction),
3891d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation,
3901d5ae102SDimitry Andric MultipleInheritanceFunction),
3911d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation,
3921d5ae102SDimitry Andric VirtualInheritanceFunction),
3931d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, GeneralFunction),
3941d5ae102SDimitry Andric };
3951d5ae102SDimitry Andric
3961d5ae102SDimitry Andric static const EnumEntry<uint16_t> TypeModifierNames[] = {
3971d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ModifierOptions, Const),
3981d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ModifierOptions, Volatile),
3991d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(ModifierOptions, Unaligned),
4001d5ae102SDimitry Andric };
4011d5ae102SDimitry Andric
4021d5ae102SDimitry Andric static const EnumEntry<uint8_t> CallingConventions[] = {
4031d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearC),
4041d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarC),
4051d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearPascal),
4061d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarPascal),
4071d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearFast),
4081d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarFast),
4091d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearStdCall),
4101d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarStdCall),
4111d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearSysCall),
4121d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarSysCall),
4131d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, ThisCall),
4141d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, MipsCall),
4151d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, Generic),
4161d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, AlphaCall),
4171d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, PpcCall),
4181d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, SHCall),
4191d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, ArmCall),
4201d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, AM33Call),
4211d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, TriCall),
4221d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, SH5Call),
4231d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, M32RCall),
4241d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, ClrCall),
4251d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, Inline),
4261d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearVector),
427ac9a064cSDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, Swift),
4281d5ae102SDimitry Andric };
4291d5ae102SDimitry Andric
4301d5ae102SDimitry Andric static const EnumEntry<uint8_t> FunctionOptionEnum[] = {
4311d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(FunctionOptions, CxxReturnUdt),
4321d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(FunctionOptions, Constructor),
4331d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(FunctionOptions, ConstructorWithVirtualBases),
4341d5ae102SDimitry Andric };
4351d5ae102SDimitry Andric
4361d5ae102SDimitry Andric static const EnumEntry<uint16_t> LabelTypeEnum[] = {
4371d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(LabelType, Near),
4381d5ae102SDimitry Andric CV_ENUM_CLASS_ENT(LabelType, Far),
4391d5ae102SDimitry Andric };
4401d5ae102SDimitry Andric
441b1c73532SDimitry Andric static const EnumEntry<uint16_t> JumpTableEntrySizeNames[] = {
442b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int8),
443b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt8),
444b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int16),
445b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt16),
446b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int32),
447b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt32),
448b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Pointer),
449b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt8ShiftLeft),
450b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt16ShiftLeft),
451b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int8ShiftLeft),
452b1c73532SDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int16ShiftLeft),
453b1c73532SDimitry Andric };
454b1c73532SDimitry Andric
45501095a5dSDimitry Andric namespace llvm {
45601095a5dSDimitry Andric namespace codeview {
4579df3605dSDimitry Andric
getSymbolTypeNames()45801095a5dSDimitry Andric ArrayRef<EnumEntry<SymbolKind>> getSymbolTypeNames() {
459e3b55780SDimitry Andric return ArrayRef(SymbolTypeNames);
46001095a5dSDimitry Andric }
46101095a5dSDimitry Andric
getTypeLeafNames()462b915e9e0SDimitry Andric ArrayRef<EnumEntry<TypeLeafKind>> getTypeLeafNames() {
463e3b55780SDimitry Andric return ArrayRef(TypeLeafNames);
464b915e9e0SDimitry Andric }
465b915e9e0SDimitry Andric
getRegisterNames(CPUType Cpu)466e6d15924SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getRegisterNames(CPUType Cpu) {
467b60736ecSDimitry Andric if (Cpu == CPUType::ARMNT) {
468e3b55780SDimitry Andric return ArrayRef(RegisterNames_ARM);
469b60736ecSDimitry Andric } else if (Cpu == CPUType::ARM64) {
470e3b55780SDimitry Andric return ArrayRef(RegisterNames_ARM64);
471e6d15924SDimitry Andric }
472e3b55780SDimitry Andric return ArrayRef(RegisterNames_X86);
47301095a5dSDimitry Andric }
47401095a5dSDimitry Andric
getPublicSymFlagNames()47508bbd35aSDimitry Andric ArrayRef<EnumEntry<uint32_t>> getPublicSymFlagNames() {
476e3b55780SDimitry Andric return ArrayRef(PublicSymFlagNames);
47708bbd35aSDimitry Andric }
4789df3605dSDimitry Andric
getProcSymFlagNames()47901095a5dSDimitry Andric ArrayRef<EnumEntry<uint8_t>> getProcSymFlagNames() {
480e3b55780SDimitry Andric return ArrayRef(ProcSymFlagNames);
48101095a5dSDimitry Andric }
4829df3605dSDimitry Andric
getLocalFlagNames()48301095a5dSDimitry Andric ArrayRef<EnumEntry<uint16_t>> getLocalFlagNames() {
484e3b55780SDimitry Andric return ArrayRef(LocalFlags);
48501095a5dSDimitry Andric }
4869df3605dSDimitry Andric
getFrameCookieKindNames()48701095a5dSDimitry Andric ArrayRef<EnumEntry<uint8_t>> getFrameCookieKindNames() {
488e3b55780SDimitry Andric return ArrayRef(FrameCookieKinds);
48901095a5dSDimitry Andric }
4909df3605dSDimitry Andric
getSourceLanguageNames()49101095a5dSDimitry Andric ArrayRef<EnumEntry<SourceLanguage>> getSourceLanguageNames() {
492e3b55780SDimitry Andric return ArrayRef(SourceLanguages);
49301095a5dSDimitry Andric }
4949df3605dSDimitry Andric
getCompileSym2FlagNames()49501095a5dSDimitry Andric ArrayRef<EnumEntry<uint32_t>> getCompileSym2FlagNames() {
496e3b55780SDimitry Andric return ArrayRef(CompileSym2FlagNames);
49701095a5dSDimitry Andric }
4989df3605dSDimitry Andric
getCompileSym3FlagNames()49901095a5dSDimitry Andric ArrayRef<EnumEntry<uint32_t>> getCompileSym3FlagNames() {
500e3b55780SDimitry Andric return ArrayRef(CompileSym3FlagNames);
50101095a5dSDimitry Andric }
5029df3605dSDimitry Andric
getFileChecksumNames()50301095a5dSDimitry Andric ArrayRef<EnumEntry<uint32_t>> getFileChecksumNames() {
504e3b55780SDimitry Andric return ArrayRef(FileChecksumNames);
50501095a5dSDimitry Andric }
5069df3605dSDimitry Andric
getCPUTypeNames()50701095a5dSDimitry Andric ArrayRef<EnumEntry<unsigned>> getCPUTypeNames() {
508e3b55780SDimitry Andric return ArrayRef(CPUTypeNames);
50901095a5dSDimitry Andric }
5109df3605dSDimitry Andric
getFrameProcSymFlagNames()51101095a5dSDimitry Andric ArrayRef<EnumEntry<uint32_t>> getFrameProcSymFlagNames() {
512e3b55780SDimitry Andric return ArrayRef(FrameProcSymFlagNames);
51301095a5dSDimitry Andric }
5149df3605dSDimitry Andric
getExportSymFlagNames()51501095a5dSDimitry Andric ArrayRef<EnumEntry<uint16_t>> getExportSymFlagNames() {
516e3b55780SDimitry Andric return ArrayRef(ExportSymFlagNames);
51701095a5dSDimitry Andric }
5189df3605dSDimitry Andric
getModuleSubstreamKindNames()51901095a5dSDimitry Andric ArrayRef<EnumEntry<uint32_t>> getModuleSubstreamKindNames() {
520e3b55780SDimitry Andric return ArrayRef(ModuleSubstreamKindNames);
52101095a5dSDimitry Andric }
5229df3605dSDimitry Andric
getThunkOrdinalNames()52301095a5dSDimitry Andric ArrayRef<EnumEntry<uint8_t>> getThunkOrdinalNames() {
524e3b55780SDimitry Andric return ArrayRef(ThunkOrdinalNames);
52501095a5dSDimitry Andric }
5269df3605dSDimitry Andric
getTrampolineNames()52701095a5dSDimitry Andric ArrayRef<EnumEntry<uint16_t>> getTrampolineNames() {
528e3b55780SDimitry Andric return ArrayRef(TrampolineNames);
52901095a5dSDimitry Andric }
5309df3605dSDimitry Andric
53101095a5dSDimitry Andric ArrayRef<EnumEntry<COFF::SectionCharacteristics>>
getImageSectionCharacteristicNames()53201095a5dSDimitry Andric getImageSectionCharacteristicNames() {
533e3b55780SDimitry Andric return ArrayRef(ImageSectionCharacteristicNames);
53401095a5dSDimitry Andric }
5359df3605dSDimitry Andric
getClassOptionNames()5361d5ae102SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getClassOptionNames() {
537e3b55780SDimitry Andric return ArrayRef(ClassOptionNames);
5381d5ae102SDimitry Andric }
5391d5ae102SDimitry Andric
getMemberAccessNames()5401d5ae102SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getMemberAccessNames() {
541e3b55780SDimitry Andric return ArrayRef(MemberAccessNames);
5421d5ae102SDimitry Andric }
5431d5ae102SDimitry Andric
getMethodOptionNames()5441d5ae102SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getMethodOptionNames() {
545e3b55780SDimitry Andric return ArrayRef(MethodOptionNames);
5461d5ae102SDimitry Andric }
5471d5ae102SDimitry Andric
getMemberKindNames()5481d5ae102SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getMemberKindNames() {
549e3b55780SDimitry Andric return ArrayRef(MemberKindNames);
5501d5ae102SDimitry Andric }
5511d5ae102SDimitry Andric
getPtrKindNames()5521d5ae102SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getPtrKindNames() {
553e3b55780SDimitry Andric return ArrayRef(PtrKindNames);
5541d5ae102SDimitry Andric }
5551d5ae102SDimitry Andric
getPtrModeNames()5561d5ae102SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getPtrModeNames() {
557e3b55780SDimitry Andric return ArrayRef(PtrModeNames);
5581d5ae102SDimitry Andric }
5591d5ae102SDimitry Andric
getPtrMemberRepNames()5601d5ae102SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getPtrMemberRepNames() {
561e3b55780SDimitry Andric return ArrayRef(PtrMemberRepNames);
5621d5ae102SDimitry Andric }
5631d5ae102SDimitry Andric
getTypeModifierNames()5641d5ae102SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getTypeModifierNames() {
565e3b55780SDimitry Andric return ArrayRef(TypeModifierNames);
5661d5ae102SDimitry Andric }
5671d5ae102SDimitry Andric
getCallingConventions()5681d5ae102SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getCallingConventions() {
569e3b55780SDimitry Andric return ArrayRef(CallingConventions);
5701d5ae102SDimitry Andric }
5711d5ae102SDimitry Andric
getFunctionOptionEnum()5721d5ae102SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getFunctionOptionEnum() {
573e3b55780SDimitry Andric return ArrayRef(FunctionOptionEnum);
5741d5ae102SDimitry Andric }
5751d5ae102SDimitry Andric
getLabelTypeEnum()5761d5ae102SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getLabelTypeEnum() {
577e3b55780SDimitry Andric return ArrayRef(LabelTypeEnum);
5781d5ae102SDimitry Andric }
5791d5ae102SDimitry Andric
getJumpTableEntrySizeNames()580b1c73532SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getJumpTableEntrySizeNames() {
581b1c73532SDimitry Andric return ArrayRef(JumpTableEntrySizeNames);
582b1c73532SDimitry Andric }
583b1c73532SDimitry Andric
5849df3605dSDimitry Andric } // end namespace codeview
5859df3605dSDimitry Andric } // end namespace llvm
586