Home | History | Annotate | Download | only in CodeView
      1 //===- EnumTables.cpp - Enum to string conversion tables --------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #include "llvm/DebugInfo/CodeView/EnumTables.h"
     11 
     12 using namespace llvm;
     13 using namespace codeview;
     14 
     15 #define CV_ENUM_CLASS_ENT(enum_class, enum)                                    \
     16   { #enum, std::underlying_type < enum_class > ::type(enum_class::enum) }
     17 
     18 #define CV_ENUM_ENT(ns, enum)                                                  \
     19   { #enum, ns::enum }
     20 
     21 static const EnumEntry<SymbolKind> SymbolTypeNames[] = {
     22 #define CV_SYMBOL(enum, val) {#enum, enum},
     23 #include "llvm/DebugInfo/CodeView/CVSymbolTypes.def"
     24 #undef CV_SYMBOL
     25 };
     26 
     27 static const EnumEntry<uint16_t> RegisterNames[] = {
     28     CV_ENUM_CLASS_ENT(RegisterId, Unknown),
     29     CV_ENUM_CLASS_ENT(RegisterId, VFrame),
     30     CV_ENUM_CLASS_ENT(RegisterId, AL),
     31     CV_ENUM_CLASS_ENT(RegisterId, CL),
     32     CV_ENUM_CLASS_ENT(RegisterId, DL),
     33     CV_ENUM_CLASS_ENT(RegisterId, BL),
     34     CV_ENUM_CLASS_ENT(RegisterId, AH),
     35     CV_ENUM_CLASS_ENT(RegisterId, CH),
     36     CV_ENUM_CLASS_ENT(RegisterId, DH),
     37     CV_ENUM_CLASS_ENT(RegisterId, BH),
     38     CV_ENUM_CLASS_ENT(RegisterId, AX),
     39     CV_ENUM_CLASS_ENT(RegisterId, CX),
     40     CV_ENUM_CLASS_ENT(RegisterId, DX),
     41     CV_ENUM_CLASS_ENT(RegisterId, BX),
     42     CV_ENUM_CLASS_ENT(RegisterId, SP),
     43     CV_ENUM_CLASS_ENT(RegisterId, BP),
     44     CV_ENUM_CLASS_ENT(RegisterId, SI),
     45     CV_ENUM_CLASS_ENT(RegisterId, DI),
     46     CV_ENUM_CLASS_ENT(RegisterId, EAX),
     47     CV_ENUM_CLASS_ENT(RegisterId, ECX),
     48     CV_ENUM_CLASS_ENT(RegisterId, EDX),
     49     CV_ENUM_CLASS_ENT(RegisterId, EBX),
     50     CV_ENUM_CLASS_ENT(RegisterId, ESP),
     51     CV_ENUM_CLASS_ENT(RegisterId, EBP),
     52     CV_ENUM_CLASS_ENT(RegisterId, ESI),
     53     CV_ENUM_CLASS_ENT(RegisterId, EDI),
     54     CV_ENUM_CLASS_ENT(RegisterId, ES),
     55     CV_ENUM_CLASS_ENT(RegisterId, CS),
     56     CV_ENUM_CLASS_ENT(RegisterId, SS),
     57     CV_ENUM_CLASS_ENT(RegisterId, DS),
     58     CV_ENUM_CLASS_ENT(RegisterId, FS),
     59     CV_ENUM_CLASS_ENT(RegisterId, GS),
     60     CV_ENUM_CLASS_ENT(RegisterId, IP),
     61     CV_ENUM_CLASS_ENT(RegisterId, RAX),
     62     CV_ENUM_CLASS_ENT(RegisterId, RBX),
     63     CV_ENUM_CLASS_ENT(RegisterId, RCX),
     64     CV_ENUM_CLASS_ENT(RegisterId, RDX),
     65     CV_ENUM_CLASS_ENT(RegisterId, RSI),
     66     CV_ENUM_CLASS_ENT(RegisterId, RDI),
     67     CV_ENUM_CLASS_ENT(RegisterId, RBP),
     68     CV_ENUM_CLASS_ENT(RegisterId, RSP),
     69     CV_ENUM_CLASS_ENT(RegisterId, R8),
     70     CV_ENUM_CLASS_ENT(RegisterId, R9),
     71     CV_ENUM_CLASS_ENT(RegisterId, R10),
     72     CV_ENUM_CLASS_ENT(RegisterId, R11),
     73     CV_ENUM_CLASS_ENT(RegisterId, R12),
     74     CV_ENUM_CLASS_ENT(RegisterId, R13),
     75     CV_ENUM_CLASS_ENT(RegisterId, R14),
     76     CV_ENUM_CLASS_ENT(RegisterId, R15),
     77 };
     78 
     79 static const EnumEntry<uint8_t> ProcSymFlagNames[] = {
     80     CV_ENUM_CLASS_ENT(ProcSymFlags, HasFP),
     81     CV_ENUM_CLASS_ENT(ProcSymFlags, HasIRET),
     82     CV_ENUM_CLASS_ENT(ProcSymFlags, HasFRET),
     83     CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoReturn),
     84     CV_ENUM_CLASS_ENT(ProcSymFlags, IsUnreachable),
     85     CV_ENUM_CLASS_ENT(ProcSymFlags, HasCustomCallingConv),
     86     CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoInline),
     87     CV_ENUM_CLASS_ENT(ProcSymFlags, HasOptimizedDebugInfo),
     88 };
     89 
     90 static const EnumEntry<uint16_t> LocalFlags[] = {
     91     CV_ENUM_CLASS_ENT(LocalSymFlags, IsParameter),
     92     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAddressTaken),
     93     CV_ENUM_CLASS_ENT(LocalSymFlags, IsCompilerGenerated),
     94     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregate),
     95     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregated),
     96     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAliased),
     97     CV_ENUM_CLASS_ENT(LocalSymFlags, IsAlias),
     98     CV_ENUM_CLASS_ENT(LocalSymFlags, IsReturnValue),
     99     CV_ENUM_CLASS_ENT(LocalSymFlags, IsOptimizedOut),
    100     CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredGlobal),
    101     CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredStatic),
    102 };
    103 
    104 static const EnumEntry<uint8_t> FrameCookieKinds[] = {
    105     CV_ENUM_CLASS_ENT(FrameCookieKind, Copy),
    106     CV_ENUM_CLASS_ENT(FrameCookieKind, XorStackPointer),
    107     CV_ENUM_CLASS_ENT(FrameCookieKind, XorFramePointer),
    108     CV_ENUM_CLASS_ENT(FrameCookieKind, XorR13),
    109 };
    110 
    111 static const EnumEntry<codeview::SourceLanguage> SourceLanguages[] = {
    112     CV_ENUM_ENT(SourceLanguage, C),       CV_ENUM_ENT(SourceLanguage, Cpp),
    113     CV_ENUM_ENT(SourceLanguage, Fortran), CV_ENUM_ENT(SourceLanguage, Masm),
    114     CV_ENUM_ENT(SourceLanguage, Pascal),  CV_ENUM_ENT(SourceLanguage, Basic),
    115     CV_ENUM_ENT(SourceLanguage, Cobol),   CV_ENUM_ENT(SourceLanguage, Link),
    116     CV_ENUM_ENT(SourceLanguage, Cvtres),  CV_ENUM_ENT(SourceLanguage, Cvtpgd),
    117     CV_ENUM_ENT(SourceLanguage, CSharp),  CV_ENUM_ENT(SourceLanguage, VB),
    118     CV_ENUM_ENT(SourceLanguage, ILAsm),   CV_ENUM_ENT(SourceLanguage, Java),
    119     CV_ENUM_ENT(SourceLanguage, JScript), CV_ENUM_ENT(SourceLanguage, MSIL),
    120     CV_ENUM_ENT(SourceLanguage, HLSL),
    121 };
    122 
    123 static const EnumEntry<uint32_t> CompileSym2FlagNames[] = {
    124     CV_ENUM_CLASS_ENT(CompileSym2Flags, EC),
    125     CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDbgInfo),
    126     CV_ENUM_CLASS_ENT(CompileSym2Flags, LTCG),
    127     CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDataAlign),
    128     CV_ENUM_CLASS_ENT(CompileSym2Flags, ManagedPresent),
    129     CV_ENUM_CLASS_ENT(CompileSym2Flags, SecurityChecks),
    130     CV_ENUM_CLASS_ENT(CompileSym2Flags, HotPatch),
    131     CV_ENUM_CLASS_ENT(CompileSym2Flags, CVTCIL),
    132     CV_ENUM_CLASS_ENT(CompileSym2Flags, MSILModule),
    133 };
    134 
    135 static const EnumEntry<uint32_t> CompileSym3FlagNames[] = {
    136     CV_ENUM_CLASS_ENT(CompileSym3Flags, EC),
    137     CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDbgInfo),
    138     CV_ENUM_CLASS_ENT(CompileSym3Flags, LTCG),
    139     CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDataAlign),
    140     CV_ENUM_CLASS_ENT(CompileSym3Flags, ManagedPresent),
    141     CV_ENUM_CLASS_ENT(CompileSym3Flags, SecurityChecks),
    142     CV_ENUM_CLASS_ENT(CompileSym3Flags, HotPatch),
    143     CV_ENUM_CLASS_ENT(CompileSym3Flags, CVTCIL),
    144     CV_ENUM_CLASS_ENT(CompileSym3Flags, MSILModule),
    145     CV_ENUM_CLASS_ENT(CompileSym3Flags, Sdl),
    146     CV_ENUM_CLASS_ENT(CompileSym3Flags, PGO),
    147     CV_ENUM_CLASS_ENT(CompileSym3Flags, Exp),
    148 };
    149 
    150 static const EnumEntry<uint32_t> FileChecksumNames[] = {
    151     CV_ENUM_CLASS_ENT(FileChecksumKind, None),
    152     CV_ENUM_CLASS_ENT(FileChecksumKind, MD5),
    153     CV_ENUM_CLASS_ENT(FileChecksumKind, SHA1),
    154     CV_ENUM_CLASS_ENT(FileChecksumKind, SHA256),
    155 };
    156 
    157 static const EnumEntry<unsigned> CPUTypeNames[] = {
    158     CV_ENUM_CLASS_ENT(CPUType, Intel8080),
    159     CV_ENUM_CLASS_ENT(CPUType, Intel8086),
    160     CV_ENUM_CLASS_ENT(CPUType, Intel80286),
    161     CV_ENUM_CLASS_ENT(CPUType, Intel80386),
    162     CV_ENUM_CLASS_ENT(CPUType, Intel80486),
    163     CV_ENUM_CLASS_ENT(CPUType, Pentium),
    164     CV_ENUM_CLASS_ENT(CPUType, PentiumPro),
    165     CV_ENUM_CLASS_ENT(CPUType, Pentium3),
    166     CV_ENUM_CLASS_ENT(CPUType, MIPS),
    167     CV_ENUM_CLASS_ENT(CPUType, MIPS16),
    168     CV_ENUM_CLASS_ENT(CPUType, MIPS32),
    169     CV_ENUM_CLASS_ENT(CPUType, MIPS64),
    170     CV_ENUM_CLASS_ENT(CPUType, MIPSI),
    171     CV_ENUM_CLASS_ENT(CPUType, MIPSII),
    172     CV_ENUM_CLASS_ENT(CPUType, MIPSIII),
    173     CV_ENUM_CLASS_ENT(CPUType, MIPSIV),
    174     CV_ENUM_CLASS_ENT(CPUType, MIPSV),
    175     CV_ENUM_CLASS_ENT(CPUType, M68000),
    176     CV_ENUM_CLASS_ENT(CPUType, M68010),
    177     CV_ENUM_CLASS_ENT(CPUType, M68020),
    178     CV_ENUM_CLASS_ENT(CPUType, M68030),
    179     CV_ENUM_CLASS_ENT(CPUType, M68040),
    180     CV_ENUM_CLASS_ENT(CPUType, Alpha),
    181     CV_ENUM_CLASS_ENT(CPUType, Alpha21164),
    182     CV_ENUM_CLASS_ENT(CPUType, Alpha21164A),
    183     CV_ENUM_CLASS_ENT(CPUType, Alpha21264),
    184     CV_ENUM_CLASS_ENT(CPUType, Alpha21364),
    185     CV_ENUM_CLASS_ENT(CPUType, PPC601),
    186     CV_ENUM_CLASS_ENT(CPUType, PPC603),
    187     CV_ENUM_CLASS_ENT(CPUType, PPC604),
    188     CV_ENUM_CLASS_ENT(CPUType, PPC620),
    189     CV_ENUM_CLASS_ENT(CPUType, PPCFP),
    190     CV_ENUM_CLASS_ENT(CPUType, PPCBE),
    191     CV_ENUM_CLASS_ENT(CPUType, SH3),
    192     CV_ENUM_CLASS_ENT(CPUType, SH3E),
    193     CV_ENUM_CLASS_ENT(CPUType, SH3DSP),
    194     CV_ENUM_CLASS_ENT(CPUType, SH4),
    195     CV_ENUM_CLASS_ENT(CPUType, SHMedia),
    196     CV_ENUM_CLASS_ENT(CPUType, ARM3),
    197     CV_ENUM_CLASS_ENT(CPUType, ARM4),
    198     CV_ENUM_CLASS_ENT(CPUType, ARM4T),
    199     CV_ENUM_CLASS_ENT(CPUType, ARM5),
    200     CV_ENUM_CLASS_ENT(CPUType, ARM5T),
    201     CV_ENUM_CLASS_ENT(CPUType, ARM6),
    202     CV_ENUM_CLASS_ENT(CPUType, ARM_XMAC),
    203     CV_ENUM_CLASS_ENT(CPUType, ARM_WMMX),
    204     CV_ENUM_CLASS_ENT(CPUType, ARM7),
    205     CV_ENUM_CLASS_ENT(CPUType, Omni),
    206     CV_ENUM_CLASS_ENT(CPUType, Ia64),
    207     CV_ENUM_CLASS_ENT(CPUType, Ia64_2),
    208     CV_ENUM_CLASS_ENT(CPUType, CEE),
    209     CV_ENUM_CLASS_ENT(CPUType, AM33),
    210     CV_ENUM_CLASS_ENT(CPUType, M32R),
    211     CV_ENUM_CLASS_ENT(CPUType, TriCore),
    212     CV_ENUM_CLASS_ENT(CPUType, X64),
    213     CV_ENUM_CLASS_ENT(CPUType, EBC),
    214     CV_ENUM_CLASS_ENT(CPUType, Thumb),
    215     CV_ENUM_CLASS_ENT(CPUType, ARMNT),
    216     CV_ENUM_CLASS_ENT(CPUType, D3D11_Shader),
    217 };
    218 
    219 static const EnumEntry<uint32_t> FrameProcSymFlagNames[] = {
    220     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasAlloca),
    221     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasSetJmp),
    222     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasLongJmp),
    223     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasInlineAssembly),
    224     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasExceptionHandling),
    225     CV_ENUM_CLASS_ENT(FrameProcedureOptions, MarkedInline),
    226     CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasStructuredExceptionHandling),
    227     CV_ENUM_CLASS_ENT(FrameProcedureOptions, Naked),
    228     CV_ENUM_CLASS_ENT(FrameProcedureOptions, SecurityChecks),
    229     CV_ENUM_CLASS_ENT(FrameProcedureOptions, AsynchronousExceptionHandling),
    230     CV_ENUM_CLASS_ENT(FrameProcedureOptions, NoStackOrderingForSecurityChecks),
    231     CV_ENUM_CLASS_ENT(FrameProcedureOptions, Inlined),
    232     CV_ENUM_CLASS_ENT(FrameProcedureOptions, StrictSecurityChecks),
    233     CV_ENUM_CLASS_ENT(FrameProcedureOptions, SafeBuffers),
    234     CV_ENUM_CLASS_ENT(FrameProcedureOptions, ProfileGuidedOptimization),
    235     CV_ENUM_CLASS_ENT(FrameProcedureOptions, ValidProfileCounts),
    236     CV_ENUM_CLASS_ENT(FrameProcedureOptions, OptimizedForSpeed),
    237     CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfg),
    238     CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfw),
    239 };
    240 
    241 static const EnumEntry<uint32_t> ModuleSubstreamKindNames[] = {
    242     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, None),
    243     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, Symbols),
    244     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, Lines),
    245     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, StringTable),
    246     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, FileChecksums),
    247     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, FrameData),
    248     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, InlineeLines),
    249     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, CrossScopeImports),
    250     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, CrossScopeExports),
    251     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, ILLines),
    252     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, FuncMDTokenMap),
    253     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, TypeMDTokenMap),
    254     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, MergedAssemblyInput),
    255     CV_ENUM_CLASS_ENT(ModuleSubstreamKind, CoffSymbolRVA),
    256 };
    257 
    258 static const EnumEntry<uint16_t> ExportSymFlagNames[] = {
    259     CV_ENUM_CLASS_ENT(ExportFlags, IsConstant),
    260     CV_ENUM_CLASS_ENT(ExportFlags, IsData),
    261     CV_ENUM_CLASS_ENT(ExportFlags, IsPrivate),
    262     CV_ENUM_CLASS_ENT(ExportFlags, HasNoName),
    263     CV_ENUM_CLASS_ENT(ExportFlags, HasExplicitOrdinal),
    264     CV_ENUM_CLASS_ENT(ExportFlags, IsForwarder),
    265 };
    266 
    267 static const EnumEntry<uint8_t> ThunkOrdinalNames[] = {
    268     CV_ENUM_CLASS_ENT(ThunkOrdinal, Standard),
    269     CV_ENUM_CLASS_ENT(ThunkOrdinal, ThisAdjustor),
    270     CV_ENUM_CLASS_ENT(ThunkOrdinal, Vcall),
    271     CV_ENUM_CLASS_ENT(ThunkOrdinal, Pcode),
    272     CV_ENUM_CLASS_ENT(ThunkOrdinal, UnknownLoad),
    273     CV_ENUM_CLASS_ENT(ThunkOrdinal, TrampIncremental),
    274     CV_ENUM_CLASS_ENT(ThunkOrdinal, BranchIsland),
    275 };
    276 
    277 static const EnumEntry<uint16_t> TrampolineNames[] = {
    278     CV_ENUM_CLASS_ENT(TrampolineType, TrampIncremental),
    279     CV_ENUM_CLASS_ENT(TrampolineType, BranchIsland),
    280 };
    281 
    282 static const EnumEntry<COFF::SectionCharacteristics>
    283     ImageSectionCharacteristicNames[] = {
    284         CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NOLOAD),
    285         CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NO_PAD),
    286         CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_CODE),
    287         CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_INITIALIZED_DATA),
    288         CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_UNINITIALIZED_DATA),
    289         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_OTHER),
    290         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_INFO),
    291         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_REMOVE),
    292         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_COMDAT),
    293         CV_ENUM_ENT(COFF, IMAGE_SCN_GPREL),
    294         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PURGEABLE),
    295         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_16BIT),
    296         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_LOCKED),
    297         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PRELOAD),
    298         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1BYTES),
    299         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2BYTES),
    300         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4BYTES),
    301         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8BYTES),
    302         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_16BYTES),
    303         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_32BYTES),
    304         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_64BYTES),
    305         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_128BYTES),
    306         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_256BYTES),
    307         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_512BYTES),
    308         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1024BYTES),
    309         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2048BYTES),
    310         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4096BYTES),
    311         CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8192BYTES),
    312         CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_NRELOC_OVFL),
    313         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_DISCARDABLE),
    314         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_CACHED),
    315         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_PAGED),
    316         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_SHARED),
    317         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_EXECUTE),
    318         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_READ),
    319         CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_WRITE)};
    320 
    321 namespace llvm {
    322 namespace codeview {
    323 ArrayRef<EnumEntry<SymbolKind>> getSymbolTypeNames() {
    324   return makeArrayRef(SymbolTypeNames);
    325 }
    326 
    327 ArrayRef<EnumEntry<uint16_t>> getRegisterNames() {
    328   return makeArrayRef(RegisterNames);
    329 }
    330 
    331 ArrayRef<EnumEntry<uint8_t>> getProcSymFlagNames() {
    332   return makeArrayRef(ProcSymFlagNames);
    333 }
    334 ArrayRef<EnumEntry<uint16_t>> getLocalFlagNames() {
    335   return makeArrayRef(LocalFlags);
    336 }
    337 ArrayRef<EnumEntry<uint8_t>> getFrameCookieKindNames() {
    338   return makeArrayRef(FrameCookieKinds);
    339 }
    340 ArrayRef<EnumEntry<SourceLanguage>> getSourceLanguageNames() {
    341   return makeArrayRef(SourceLanguages);
    342 }
    343 ArrayRef<EnumEntry<uint32_t>> getCompileSym2FlagNames() {
    344   return makeArrayRef(CompileSym2FlagNames);
    345 }
    346 ArrayRef<EnumEntry<uint32_t>> getCompileSym3FlagNames() {
    347   return makeArrayRef(CompileSym3FlagNames);
    348 }
    349 ArrayRef<EnumEntry<uint32_t>> getFileChecksumNames() {
    350   return makeArrayRef(FileChecksumNames);
    351 }
    352 ArrayRef<EnumEntry<unsigned>> getCPUTypeNames() {
    353   return makeArrayRef(CPUTypeNames);
    354 }
    355 ArrayRef<EnumEntry<uint32_t>> getFrameProcSymFlagNames() {
    356   return makeArrayRef(FrameProcSymFlagNames);
    357 }
    358 ArrayRef<EnumEntry<uint16_t>> getExportSymFlagNames() {
    359   return makeArrayRef(ExportSymFlagNames);
    360 }
    361 ArrayRef<EnumEntry<uint32_t>> getModuleSubstreamKindNames() {
    362   return makeArrayRef(ModuleSubstreamKindNames);
    363 }
    364 ArrayRef<EnumEntry<uint8_t>> getThunkOrdinalNames() {
    365   return makeArrayRef(ThunkOrdinalNames);
    366 }
    367 ArrayRef<EnumEntry<uint16_t>> getTrampolineNames() {
    368   return makeArrayRef(TrampolineNames);
    369 }
    370 ArrayRef<EnumEntry<COFF::SectionCharacteristics>>
    371 getImageSectionCharacteristicNames() {
    372   return makeArrayRef(ImageSectionCharacteristicNames);
    373 }
    374 }
    375 }
    376