10b57cec5SDimitry Andric //===- EnumTables.cpp - Enum to string conversion tables ------------------===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric 90b57cec5SDimitry Andric #include "llvm/DebugInfo/CodeView/EnumTables.h" 100b57cec5SDimitry Andric #include "llvm/Support/ScopedPrinter.h" 110b57cec5SDimitry Andric #include <type_traits> 120b57cec5SDimitry Andric 130b57cec5SDimitry Andric using namespace llvm; 140b57cec5SDimitry Andric using namespace codeview; 150b57cec5SDimitry Andric 160b57cec5SDimitry Andric #define CV_ENUM_CLASS_ENT(enum_class, enum) \ 17bdd1243dSDimitry Andric { #enum, std::underlying_type_t<enum_class>(enum_class::enum) } 180b57cec5SDimitry Andric 190b57cec5SDimitry Andric #define CV_ENUM_ENT(ns, enum) \ 200b57cec5SDimitry Andric { #enum, ns::enum } 210b57cec5SDimitry Andric 220b57cec5SDimitry Andric static const EnumEntry<SymbolKind> SymbolTypeNames[] = { 230b57cec5SDimitry Andric #define CV_SYMBOL(enum, val) {#enum, enum}, 240b57cec5SDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def" 250b57cec5SDimitry Andric #undef CV_SYMBOL 260b57cec5SDimitry Andric }; 270b57cec5SDimitry Andric 280b57cec5SDimitry Andric static const EnumEntry<TypeLeafKind> TypeLeafNames[] = { 290b57cec5SDimitry Andric #define CV_TYPE(name, val) {#name, name}, 300b57cec5SDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewTypes.def" 310b57cec5SDimitry Andric #undef CV_TYPE 320b57cec5SDimitry Andric }; 330b57cec5SDimitry Andric 340b57cec5SDimitry Andric static const EnumEntry<uint16_t> RegisterNames_X86[] = { 350b57cec5SDimitry Andric #define CV_REGISTERS_X86 360b57cec5SDimitry Andric #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name), 370b57cec5SDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def" 380b57cec5SDimitry Andric #undef CV_REGISTER 390b57cec5SDimitry Andric #undef CV_REGISTERS_X86 400b57cec5SDimitry Andric }; 410b57cec5SDimitry Andric 42e8d8bef9SDimitry Andric static const EnumEntry<uint16_t> RegisterNames_ARM[] = { 43e8d8bef9SDimitry Andric #define CV_REGISTERS_ARM 44e8d8bef9SDimitry Andric #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name), 45e8d8bef9SDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def" 46e8d8bef9SDimitry Andric #undef CV_REGISTER 47e8d8bef9SDimitry Andric #undef CV_REGISTERS_ARM 48e8d8bef9SDimitry Andric }; 49e8d8bef9SDimitry Andric 500b57cec5SDimitry Andric static const EnumEntry<uint16_t> RegisterNames_ARM64[] = { 510b57cec5SDimitry Andric #define CV_REGISTERS_ARM64 520b57cec5SDimitry Andric #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name), 530b57cec5SDimitry Andric #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def" 540b57cec5SDimitry Andric #undef CV_REGISTER 550b57cec5SDimitry Andric #undef CV_REGISTERS_ARM64 560b57cec5SDimitry Andric }; 570b57cec5SDimitry Andric 580b57cec5SDimitry Andric static const EnumEntry<uint32_t> PublicSymFlagNames[] = { 590b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, Code), 600b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, Function), 610b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, Managed), 620b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(PublicSymFlags, MSIL), 630b57cec5SDimitry Andric }; 640b57cec5SDimitry Andric 650b57cec5SDimitry Andric static const EnumEntry<uint8_t> ProcSymFlagNames[] = { 660b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasFP), 670b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasIRET), 680b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasFRET), 690b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoReturn), 700b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, IsUnreachable), 710b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasCustomCallingConv), 720b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoInline), 730b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ProcSymFlags, HasOptimizedDebugInfo), 740b57cec5SDimitry Andric }; 750b57cec5SDimitry Andric 760b57cec5SDimitry Andric static const EnumEntry<uint16_t> LocalFlags[] = { 770b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsParameter), 780b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAddressTaken), 790b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsCompilerGenerated), 800b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregate), 810b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregated), 820b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAliased), 830b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsAlias), 840b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsReturnValue), 850b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsOptimizedOut), 860b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredGlobal), 870b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredStatic), 880b57cec5SDimitry Andric }; 890b57cec5SDimitry Andric 900b57cec5SDimitry Andric static const EnumEntry<uint8_t> FrameCookieKinds[] = { 910b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, Copy), 920b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, XorStackPointer), 930b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, XorFramePointer), 940b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameCookieKind, XorR13), 950b57cec5SDimitry Andric }; 960b57cec5SDimitry Andric 970b57cec5SDimitry Andric static const EnumEntry<codeview::SourceLanguage> SourceLanguages[] = { 980b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, C), CV_ENUM_ENT(SourceLanguage, Cpp), 990b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, Fortran), CV_ENUM_ENT(SourceLanguage, Masm), 1000b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, Pascal), CV_ENUM_ENT(SourceLanguage, Basic), 1010b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, Cobol), CV_ENUM_ENT(SourceLanguage, Link), 1020b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, Cvtres), CV_ENUM_ENT(SourceLanguage, Cvtpgd), 1030b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, CSharp), CV_ENUM_ENT(SourceLanguage, VB), 1040b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, ILAsm), CV_ENUM_ENT(SourceLanguage, Java), 1050b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, JScript), CV_ENUM_ENT(SourceLanguage, MSIL), 1060b57cec5SDimitry Andric CV_ENUM_ENT(SourceLanguage, HLSL), CV_ENUM_ENT(SourceLanguage, D), 10704eeddc0SDimitry Andric CV_ENUM_ENT(SourceLanguage, Swift), CV_ENUM_ENT(SourceLanguage, Rust), 10806c3fb27SDimitry Andric CV_ENUM_ENT(SourceLanguage, ObjC), CV_ENUM_ENT(SourceLanguage, ObjCpp), 109*0fca6ea1SDimitry Andric CV_ENUM_ENT(SourceLanguage, AliasObj), CV_ENUM_ENT(SourceLanguage, Go), 110*0fca6ea1SDimitry Andric {"Swift", SourceLanguage::OldSwift}, 1110b57cec5SDimitry Andric }; 1120b57cec5SDimitry Andric 1130b57cec5SDimitry Andric static const EnumEntry<uint32_t> CompileSym2FlagNames[] = { 1140b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, EC), 1150b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDbgInfo), 1160b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, LTCG), 1170b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDataAlign), 1180b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, ManagedPresent), 1190b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, SecurityChecks), 1200b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, HotPatch), 1210b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, CVTCIL), 1220b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym2Flags, MSILModule), 1230b57cec5SDimitry Andric }; 1240b57cec5SDimitry Andric 1250b57cec5SDimitry Andric static const EnumEntry<uint32_t> CompileSym3FlagNames[] = { 1260b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, EC), 1270b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDbgInfo), 1280b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, LTCG), 1290b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDataAlign), 1300b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, ManagedPresent), 1310b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, SecurityChecks), 1320b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, HotPatch), 1330b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, CVTCIL), 1340b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, MSILModule), 1350b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, Sdl), 1360b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, PGO), 1370b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CompileSym3Flags, Exp), 1380b57cec5SDimitry Andric }; 1390b57cec5SDimitry Andric 1400b57cec5SDimitry Andric static const EnumEntry<uint32_t> FileChecksumNames[] = { 1410b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, None), 1420b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, MD5), 1430b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, SHA1), 1440b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FileChecksumKind, SHA256), 1450b57cec5SDimitry Andric }; 1460b57cec5SDimitry Andric 1470b57cec5SDimitry Andric static const EnumEntry<unsigned> CPUTypeNames[] = { 1480b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel8080), 1490b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel8086), 1500b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel80286), 1510b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel80386), 1520b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Intel80486), 1530b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Pentium), 1540b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PentiumPro), 1550b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Pentium3), 1560b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS), 1570b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS16), 1580b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS32), 1590b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPS64), 1600b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSI), 1610b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSII), 1620b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSIII), 1630b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSIV), 1640b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, MIPSV), 1650b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68000), 1660b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68010), 1670b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68020), 1680b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68030), 1690b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M68040), 1700b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha), 1710b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21164), 1720b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21164A), 1730b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21264), 1740b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Alpha21364), 1750b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC601), 1760b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC603), 1770b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC604), 1780b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPC620), 1790b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPCFP), 1800b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, PPCBE), 1810b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH3), 1820b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH3E), 1830b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH3DSP), 1840b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SH4), 1850b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, SHMedia), 1860b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM3), 1870b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM4), 1880b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM4T), 1890b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM5), 1900b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM5T), 1910b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM6), 1920b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM_XMAC), 1930b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM_WMMX), 1940b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM7), 1950b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Omni), 1960b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Ia64), 1970b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Ia64_2), 1980b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, CEE), 1990b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, AM33), 2000b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, M32R), 2010b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, TriCore), 2020b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, X64), 2030b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, EBC), 2040b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Thumb), 2050b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARMNT), 206fe6060f1SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM64), 207fe6060f1SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, HybridX86ARM64), 208fe6060f1SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM64EC), 209fe6060f1SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, ARM64X), 210*0fca6ea1SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, Unknown), 2110b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(CPUType, D3D11_Shader), 2120b57cec5SDimitry Andric }; 2130b57cec5SDimitry Andric 2140b57cec5SDimitry Andric static const EnumEntry<uint32_t> FrameProcSymFlagNames[] = { 2150b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasAlloca), 2160b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasSetJmp), 2170b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasLongJmp), 2180b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasInlineAssembly), 2190b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasExceptionHandling), 2200b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, MarkedInline), 2210b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasStructuredExceptionHandling), 2220b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, Naked), 2230b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, SecurityChecks), 2240b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, AsynchronousExceptionHandling), 2250b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, NoStackOrderingForSecurityChecks), 2260b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, Inlined), 2270b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, StrictSecurityChecks), 2280b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, SafeBuffers), 2290b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedLocalBasePointerMask), 2300b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedParamBasePointerMask), 2310b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, ProfileGuidedOptimization), 2320b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, ValidProfileCounts), 2330b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, OptimizedForSpeed), 2340b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfg), 2350b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfw), 2360b57cec5SDimitry Andric }; 2370b57cec5SDimitry Andric 2380b57cec5SDimitry Andric static const EnumEntry<uint32_t> ModuleSubstreamKindNames[] = { 2390b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, None), 2400b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, Symbols), 2410b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, Lines), 2420b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, StringTable), 2430b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, FileChecksums), 2440b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, FrameData), 2450b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, InlineeLines), 2460b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeImports), 2470b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeExports), 2480b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, ILLines), 2490b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, FuncMDTokenMap), 2500b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, TypeMDTokenMap), 2510b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, MergedAssemblyInput), 2520b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(DebugSubsectionKind, CoffSymbolRVA), 2530b57cec5SDimitry Andric }; 2540b57cec5SDimitry Andric 2550b57cec5SDimitry Andric static const EnumEntry<uint16_t> ExportSymFlagNames[] = { 2560b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsConstant), 2570b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsData), 2580b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsPrivate), 2590b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, HasNoName), 2600b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, HasExplicitOrdinal), 2610b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ExportFlags, IsForwarder), 2620b57cec5SDimitry Andric }; 2630b57cec5SDimitry Andric 2640b57cec5SDimitry Andric static const EnumEntry<uint8_t> ThunkOrdinalNames[] = { 2650b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, Standard), 2660b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, ThisAdjustor), 2670b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, Vcall), 2680b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, Pcode), 2690b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, UnknownLoad), 2700b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, TrampIncremental), 2710b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(ThunkOrdinal, BranchIsland), 2720b57cec5SDimitry Andric }; 2730b57cec5SDimitry Andric 2740b57cec5SDimitry Andric static const EnumEntry<uint16_t> TrampolineNames[] = { 2750b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(TrampolineType, TrampIncremental), 2760b57cec5SDimitry Andric CV_ENUM_CLASS_ENT(TrampolineType, BranchIsland), 2770b57cec5SDimitry Andric }; 2780b57cec5SDimitry Andric 2790b57cec5SDimitry Andric static const EnumEntry<COFF::SectionCharacteristics> 2800b57cec5SDimitry Andric ImageSectionCharacteristicNames[] = { 2810b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NOLOAD), 2820b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NO_PAD), 2830b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_CODE), 2840b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_INITIALIZED_DATA), 2850b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_UNINITIALIZED_DATA), 2860b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_OTHER), 2870b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_INFO), 2880b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_REMOVE), 2890b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_COMDAT), 2900b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_GPREL), 2910b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PURGEABLE), 2920b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_16BIT), 2930b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_LOCKED), 2940b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PRELOAD), 2950b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1BYTES), 2960b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2BYTES), 2970b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4BYTES), 2980b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8BYTES), 2990b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_16BYTES), 3000b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_32BYTES), 3010b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_64BYTES), 3020b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_128BYTES), 3030b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_256BYTES), 3040b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_512BYTES), 3050b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1024BYTES), 3060b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2048BYTES), 3070b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4096BYTES), 3080b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8192BYTES), 3090b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_NRELOC_OVFL), 3100b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_DISCARDABLE), 3110b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_CACHED), 3120b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_PAGED), 3130b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_SHARED), 3140b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_EXECUTE), 3150b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_READ), 3160b57cec5SDimitry Andric CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_WRITE)}; 3170b57cec5SDimitry Andric 3188bcb0991SDimitry Andric static const EnumEntry<uint16_t> ClassOptionNames[] = { 3198bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Packed), 3208bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasConstructorOrDestructor), 3218bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasOverloadedOperator), 3228bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Nested), 3238bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, ContainsNestedClass), 3248bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasOverloadedAssignmentOperator), 3258bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasConversionOperator), 3268bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, ForwardReference), 3278bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Scoped), 3288bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, HasUniqueName), 3298bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Sealed), 3308bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ClassOptions, Intrinsic), 3318bcb0991SDimitry Andric }; 3328bcb0991SDimitry Andric 3338bcb0991SDimitry Andric static const EnumEntry<uint8_t> MemberAccessNames[] = { 3348bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, None), 3358bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, Private), 3368bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, Protected), 3378bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MemberAccess, Public), 3388bcb0991SDimitry Andric }; 3398bcb0991SDimitry Andric 3408bcb0991SDimitry Andric static const EnumEntry<uint16_t> MethodOptionNames[] = { 3418bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, Pseudo), 3428bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, NoInherit), 3438bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, NoConstruct), 3448bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, CompilerGenerated), 3458bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodOptions, Sealed), 3468bcb0991SDimitry Andric }; 3478bcb0991SDimitry Andric 3488bcb0991SDimitry Andric static const EnumEntry<uint16_t> MemberKindNames[] = { 3498bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Vanilla), 3508bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Virtual), 3518bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Static), 3528bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, Friend), 3538bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, IntroducingVirtual), 3548bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, PureVirtual), 3558bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(MethodKind, PureIntroducingVirtual), 3568bcb0991SDimitry Andric }; 3578bcb0991SDimitry Andric 3588bcb0991SDimitry Andric static const EnumEntry<uint8_t> PtrKindNames[] = { 3598bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Near16), 3608bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Far16), 3618bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Huge16), 3628bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegment), 3638bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnValue), 3648bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegmentValue), 3658bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnAddress), 3668bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSegmentAddress), 3678bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnType), 3688bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, BasedOnSelf), 3698bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Near32), 3708bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Far32), 3718bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerKind, Near64), 3728bcb0991SDimitry Andric }; 3738bcb0991SDimitry Andric 3748bcb0991SDimitry Andric static const EnumEntry<uint8_t> PtrModeNames[] = { 3758bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, Pointer), 3768bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, LValueReference), 3778bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, PointerToDataMember), 3788bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, PointerToMemberFunction), 3798bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerMode, RValueReference), 3808bcb0991SDimitry Andric }; 3818bcb0991SDimitry Andric 3828bcb0991SDimitry Andric static const EnumEntry<uint16_t> PtrMemberRepNames[] = { 3838bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, Unknown), 3848bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, SingleInheritanceData), 3858bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, MultipleInheritanceData), 3868bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, VirtualInheritanceData), 3878bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, GeneralData), 3888bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, SingleInheritanceFunction), 3898bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, 3908bcb0991SDimitry Andric MultipleInheritanceFunction), 3918bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, 3928bcb0991SDimitry Andric VirtualInheritanceFunction), 3938bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(PointerToMemberRepresentation, GeneralFunction), 3948bcb0991SDimitry Andric }; 3958bcb0991SDimitry Andric 3968bcb0991SDimitry Andric static const EnumEntry<uint16_t> TypeModifierNames[] = { 3978bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ModifierOptions, Const), 3988bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ModifierOptions, Volatile), 3998bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(ModifierOptions, Unaligned), 4008bcb0991SDimitry Andric }; 4018bcb0991SDimitry Andric 4028bcb0991SDimitry Andric static const EnumEntry<uint8_t> CallingConventions[] = { 4038bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearC), 4048bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarC), 4058bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearPascal), 4068bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarPascal), 4078bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearFast), 4088bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarFast), 4098bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearStdCall), 4108bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarStdCall), 4118bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearSysCall), 4128bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, FarSysCall), 4138bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, ThisCall), 4148bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, MipsCall), 4158bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, Generic), 4168bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, AlphaCall), 4178bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, PpcCall), 4188bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, SHCall), 4198bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, ArmCall), 4208bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, AM33Call), 4218bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, TriCall), 4228bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, SH5Call), 4238bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, M32RCall), 4248bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, ClrCall), 4258bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, Inline), 4268bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, NearVector), 427*0fca6ea1SDimitry Andric CV_ENUM_CLASS_ENT(CallingConvention, Swift), 4288bcb0991SDimitry Andric }; 4298bcb0991SDimitry Andric 4308bcb0991SDimitry Andric static const EnumEntry<uint8_t> FunctionOptionEnum[] = { 4318bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(FunctionOptions, CxxReturnUdt), 4328bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(FunctionOptions, Constructor), 4338bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(FunctionOptions, ConstructorWithVirtualBases), 4348bcb0991SDimitry Andric }; 4358bcb0991SDimitry Andric 4368bcb0991SDimitry Andric static const EnumEntry<uint16_t> LabelTypeEnum[] = { 4378bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(LabelType, Near), 4388bcb0991SDimitry Andric CV_ENUM_CLASS_ENT(LabelType, Far), 4398bcb0991SDimitry Andric }; 4408bcb0991SDimitry Andric 4415f757f3fSDimitry Andric static const EnumEntry<uint16_t> JumpTableEntrySizeNames[] = { 4425f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int8), 4435f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt8), 4445f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int16), 4455f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt16), 4465f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int32), 4475f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt32), 4485f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Pointer), 4495f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt8ShiftLeft), 4505f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, UInt16ShiftLeft), 4515f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int8ShiftLeft), 4525f757f3fSDimitry Andric CV_ENUM_CLASS_ENT(JumpTableEntrySize, Int16ShiftLeft), 4535f757f3fSDimitry Andric }; 4545f757f3fSDimitry Andric 4550b57cec5SDimitry Andric namespace llvm { 4560b57cec5SDimitry Andric namespace codeview { 4570b57cec5SDimitry Andric 4580b57cec5SDimitry Andric ArrayRef<EnumEntry<SymbolKind>> getSymbolTypeNames() { 459bdd1243dSDimitry Andric return ArrayRef(SymbolTypeNames); 4600b57cec5SDimitry Andric } 4610b57cec5SDimitry Andric 4620b57cec5SDimitry Andric ArrayRef<EnumEntry<TypeLeafKind>> getTypeLeafNames() { 463bdd1243dSDimitry Andric return ArrayRef(TypeLeafNames); 4640b57cec5SDimitry Andric } 4650b57cec5SDimitry Andric 4660b57cec5SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getRegisterNames(CPUType Cpu) { 467e8d8bef9SDimitry Andric if (Cpu == CPUType::ARMNT) { 468bdd1243dSDimitry Andric return ArrayRef(RegisterNames_ARM); 469e8d8bef9SDimitry Andric } else if (Cpu == CPUType::ARM64) { 470bdd1243dSDimitry Andric return ArrayRef(RegisterNames_ARM64); 4710b57cec5SDimitry Andric } 472bdd1243dSDimitry Andric return ArrayRef(RegisterNames_X86); 4730b57cec5SDimitry Andric } 4740b57cec5SDimitry Andric 4750b57cec5SDimitry Andric ArrayRef<EnumEntry<uint32_t>> getPublicSymFlagNames() { 476bdd1243dSDimitry Andric return ArrayRef(PublicSymFlagNames); 4770b57cec5SDimitry Andric } 4780b57cec5SDimitry Andric 4790b57cec5SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getProcSymFlagNames() { 480bdd1243dSDimitry Andric return ArrayRef(ProcSymFlagNames); 4810b57cec5SDimitry Andric } 4820b57cec5SDimitry Andric 4830b57cec5SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getLocalFlagNames() { 484bdd1243dSDimitry Andric return ArrayRef(LocalFlags); 4850b57cec5SDimitry Andric } 4860b57cec5SDimitry Andric 4870b57cec5SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getFrameCookieKindNames() { 488bdd1243dSDimitry Andric return ArrayRef(FrameCookieKinds); 4890b57cec5SDimitry Andric } 4900b57cec5SDimitry Andric 4910b57cec5SDimitry Andric ArrayRef<EnumEntry<SourceLanguage>> getSourceLanguageNames() { 492bdd1243dSDimitry Andric return ArrayRef(SourceLanguages); 4930b57cec5SDimitry Andric } 4940b57cec5SDimitry Andric 4950b57cec5SDimitry Andric ArrayRef<EnumEntry<uint32_t>> getCompileSym2FlagNames() { 496bdd1243dSDimitry Andric return ArrayRef(CompileSym2FlagNames); 4970b57cec5SDimitry Andric } 4980b57cec5SDimitry Andric 4990b57cec5SDimitry Andric ArrayRef<EnumEntry<uint32_t>> getCompileSym3FlagNames() { 500bdd1243dSDimitry Andric return ArrayRef(CompileSym3FlagNames); 5010b57cec5SDimitry Andric } 5020b57cec5SDimitry Andric 5030b57cec5SDimitry Andric ArrayRef<EnumEntry<uint32_t>> getFileChecksumNames() { 504bdd1243dSDimitry Andric return ArrayRef(FileChecksumNames); 5050b57cec5SDimitry Andric } 5060b57cec5SDimitry Andric 5070b57cec5SDimitry Andric ArrayRef<EnumEntry<unsigned>> getCPUTypeNames() { 508bdd1243dSDimitry Andric return ArrayRef(CPUTypeNames); 5090b57cec5SDimitry Andric } 5100b57cec5SDimitry Andric 5110b57cec5SDimitry Andric ArrayRef<EnumEntry<uint32_t>> getFrameProcSymFlagNames() { 512bdd1243dSDimitry Andric return ArrayRef(FrameProcSymFlagNames); 5130b57cec5SDimitry Andric } 5140b57cec5SDimitry Andric 5150b57cec5SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getExportSymFlagNames() { 516bdd1243dSDimitry Andric return ArrayRef(ExportSymFlagNames); 5170b57cec5SDimitry Andric } 5180b57cec5SDimitry Andric 5190b57cec5SDimitry Andric ArrayRef<EnumEntry<uint32_t>> getModuleSubstreamKindNames() { 520bdd1243dSDimitry Andric return ArrayRef(ModuleSubstreamKindNames); 5210b57cec5SDimitry Andric } 5220b57cec5SDimitry Andric 5230b57cec5SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getThunkOrdinalNames() { 524bdd1243dSDimitry Andric return ArrayRef(ThunkOrdinalNames); 5250b57cec5SDimitry Andric } 5260b57cec5SDimitry Andric 5270b57cec5SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getTrampolineNames() { 528bdd1243dSDimitry Andric return ArrayRef(TrampolineNames); 5290b57cec5SDimitry Andric } 5300b57cec5SDimitry Andric 5310b57cec5SDimitry Andric ArrayRef<EnumEntry<COFF::SectionCharacteristics>> 5320b57cec5SDimitry Andric getImageSectionCharacteristicNames() { 533bdd1243dSDimitry Andric return ArrayRef(ImageSectionCharacteristicNames); 5340b57cec5SDimitry Andric } 5350b57cec5SDimitry Andric 5368bcb0991SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getClassOptionNames() { 537bdd1243dSDimitry Andric return ArrayRef(ClassOptionNames); 5388bcb0991SDimitry Andric } 5398bcb0991SDimitry Andric 5408bcb0991SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getMemberAccessNames() { 541bdd1243dSDimitry Andric return ArrayRef(MemberAccessNames); 5428bcb0991SDimitry Andric } 5438bcb0991SDimitry Andric 5448bcb0991SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getMethodOptionNames() { 545bdd1243dSDimitry Andric return ArrayRef(MethodOptionNames); 5468bcb0991SDimitry Andric } 5478bcb0991SDimitry Andric 5488bcb0991SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getMemberKindNames() { 549bdd1243dSDimitry Andric return ArrayRef(MemberKindNames); 5508bcb0991SDimitry Andric } 5518bcb0991SDimitry Andric 5528bcb0991SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getPtrKindNames() { 553bdd1243dSDimitry Andric return ArrayRef(PtrKindNames); 5548bcb0991SDimitry Andric } 5558bcb0991SDimitry Andric 5568bcb0991SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getPtrModeNames() { 557bdd1243dSDimitry Andric return ArrayRef(PtrModeNames); 5588bcb0991SDimitry Andric } 5598bcb0991SDimitry Andric 5608bcb0991SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getPtrMemberRepNames() { 561bdd1243dSDimitry Andric return ArrayRef(PtrMemberRepNames); 5628bcb0991SDimitry Andric } 5638bcb0991SDimitry Andric 5648bcb0991SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getTypeModifierNames() { 565bdd1243dSDimitry Andric return ArrayRef(TypeModifierNames); 5668bcb0991SDimitry Andric } 5678bcb0991SDimitry Andric 5688bcb0991SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getCallingConventions() { 569bdd1243dSDimitry Andric return ArrayRef(CallingConventions); 5708bcb0991SDimitry Andric } 5718bcb0991SDimitry Andric 5728bcb0991SDimitry Andric ArrayRef<EnumEntry<uint8_t>> getFunctionOptionEnum() { 573bdd1243dSDimitry Andric return ArrayRef(FunctionOptionEnum); 5748bcb0991SDimitry Andric } 5758bcb0991SDimitry Andric 5768bcb0991SDimitry Andric ArrayRef<EnumEntry<uint16_t>> getLabelTypeEnum() { 577bdd1243dSDimitry Andric return ArrayRef(LabelTypeEnum); 5788bcb0991SDimitry Andric } 5798bcb0991SDimitry Andric 5805f757f3fSDimitry Andric ArrayRef<EnumEntry<uint16_t>> getJumpTableEntrySizeNames() { 5815f757f3fSDimitry Andric return ArrayRef(JumpTableEntrySizeNames); 5825f757f3fSDimitry Andric } 5835f757f3fSDimitry Andric 5840b57cec5SDimitry Andric } // end namespace codeview 5850b57cec5SDimitry Andric } // end namespace llvm 586