-static const pod_pair<COFF::SymbolBaseType, const char *>
-SymbolBaseTypePairs [] = {
- STRING_PAIR(IMAGE_SYM_TYPE_NULL),
- STRING_PAIR(IMAGE_SYM_TYPE_VOID),
- STRING_PAIR(IMAGE_SYM_TYPE_CHAR),
- STRING_PAIR(IMAGE_SYM_TYPE_SHORT),
- STRING_PAIR(IMAGE_SYM_TYPE_INT),
- STRING_PAIR(IMAGE_SYM_TYPE_LONG),
- STRING_PAIR(IMAGE_SYM_TYPE_FLOAT),
- STRING_PAIR(IMAGE_SYM_TYPE_DOUBLE),
- STRING_PAIR(IMAGE_SYM_TYPE_STRUCT),
- STRING_PAIR(IMAGE_SYM_TYPE_UNION),
- STRING_PAIR(IMAGE_SYM_TYPE_ENUM),
- STRING_PAIR(IMAGE_SYM_TYPE_MOE),
- STRING_PAIR(IMAGE_SYM_TYPE_BYTE),
- STRING_PAIR(IMAGE_SYM_TYPE_WORD),
- STRING_PAIR(IMAGE_SYM_TYPE_UINT),
- STRING_PAIR(IMAGE_SYM_TYPE_DWORD)
-};
-
-static const pod_pair<COFF::SymbolComplexType, const char *>
-SymbolComplexTypePairs [] = {
- STRING_PAIR(IMAGE_SYM_DTYPE_NULL),
- STRING_PAIR(IMAGE_SYM_DTYPE_POINTER),
- STRING_PAIR(IMAGE_SYM_DTYPE_FUNCTION),
- STRING_PAIR(IMAGE_SYM_DTYPE_ARRAY),
-};
-
-static const pod_pair<COFF::SymbolStorageClass, const char *>
-SymbolStorageClassPairs [] = {
- STRING_PAIR(IMAGE_SYM_CLASS_END_OF_FUNCTION),
- STRING_PAIR(IMAGE_SYM_CLASS_NULL),
- STRING_PAIR(IMAGE_SYM_CLASS_AUTOMATIC),
- STRING_PAIR(IMAGE_SYM_CLASS_EXTERNAL),
- STRING_PAIR(IMAGE_SYM_CLASS_STATIC),
- STRING_PAIR(IMAGE_SYM_CLASS_REGISTER),
- STRING_PAIR(IMAGE_SYM_CLASS_EXTERNAL_DEF),
- STRING_PAIR(IMAGE_SYM_CLASS_LABEL),
- STRING_PAIR(IMAGE_SYM_CLASS_UNDEFINED_LABEL),
- STRING_PAIR(IMAGE_SYM_CLASS_MEMBER_OF_STRUCT),
- STRING_PAIR(IMAGE_SYM_CLASS_ARGUMENT),
- STRING_PAIR(IMAGE_SYM_CLASS_STRUCT_TAG),
- STRING_PAIR(IMAGE_SYM_CLASS_MEMBER_OF_UNION),
- STRING_PAIR(IMAGE_SYM_CLASS_UNION_TAG),
- STRING_PAIR(IMAGE_SYM_CLASS_TYPE_DEFINITION),
- STRING_PAIR(IMAGE_SYM_CLASS_UNDEFINED_STATIC),
- STRING_PAIR(IMAGE_SYM_CLASS_ENUM_TAG),
- STRING_PAIR(IMAGE_SYM_CLASS_MEMBER_OF_ENUM),
- STRING_PAIR(IMAGE_SYM_CLASS_REGISTER_PARAM),
- STRING_PAIR(IMAGE_SYM_CLASS_BIT_FIELD),
- STRING_PAIR(IMAGE_SYM_CLASS_BLOCK),
- STRING_PAIR(IMAGE_SYM_CLASS_FUNCTION),
- STRING_PAIR(IMAGE_SYM_CLASS_END_OF_STRUCT),
- STRING_PAIR(IMAGE_SYM_CLASS_FILE),
- STRING_PAIR(IMAGE_SYM_CLASS_SECTION),
- STRING_PAIR(IMAGE_SYM_CLASS_WEAK_EXTERNAL),
- STRING_PAIR(IMAGE_SYM_CLASS_CLR_TOKEN),
-};
-
-static const pod_pair<COFF::RelocationTypeX86, const char *>
-RelocationTypeX86Pairs [] = {
- STRING_PAIR(IMAGE_REL_I386_ABSOLUTE),
- STRING_PAIR(IMAGE_REL_I386_DIR16),
- STRING_PAIR(IMAGE_REL_I386_REL16),
- STRING_PAIR(IMAGE_REL_I386_DIR32),
- STRING_PAIR(IMAGE_REL_I386_DIR32NB),
- STRING_PAIR(IMAGE_REL_I386_SEG12),
- STRING_PAIR(IMAGE_REL_I386_SECTION),
- STRING_PAIR(IMAGE_REL_I386_SECREL),
- STRING_PAIR(IMAGE_REL_I386_TOKEN),
- STRING_PAIR(IMAGE_REL_I386_SECREL7),
- STRING_PAIR(IMAGE_REL_I386_REL32),
- STRING_PAIR(IMAGE_REL_AMD64_ABSOLUTE),
- STRING_PAIR(IMAGE_REL_AMD64_ADDR64),
- STRING_PAIR(IMAGE_REL_AMD64_ADDR32),
- STRING_PAIR(IMAGE_REL_AMD64_ADDR32NB),
- STRING_PAIR(IMAGE_REL_AMD64_REL32),
- STRING_PAIR(IMAGE_REL_AMD64_REL32_1),
- STRING_PAIR(IMAGE_REL_AMD64_REL32_2),
- STRING_PAIR(IMAGE_REL_AMD64_REL32_3),
- STRING_PAIR(IMAGE_REL_AMD64_REL32_4),
- STRING_PAIR(IMAGE_REL_AMD64_REL32_5),
- STRING_PAIR(IMAGE_REL_AMD64_SECTION),
- STRING_PAIR(IMAGE_REL_AMD64_SECREL),
- STRING_PAIR(IMAGE_REL_AMD64_SECREL7),
- STRING_PAIR(IMAGE_REL_AMD64_TOKEN),
- STRING_PAIR(IMAGE_REL_AMD64_SREL32),
- STRING_PAIR(IMAGE_REL_AMD64_PAIR),
- STRING_PAIR(IMAGE_REL_AMD64_SSPAN32)
-};
-
-static const pod_pair<COFF::RelocationTypesARM, const char *>
-RelocationTypesARMPairs [] = {
- STRING_PAIR(IMAGE_REL_ARM_ABSOLUTE),
- STRING_PAIR(IMAGE_REL_ARM_ADDR32),
- STRING_PAIR(IMAGE_REL_ARM_ADDR32NB),
- STRING_PAIR(IMAGE_REL_ARM_BRANCH24),
- STRING_PAIR(IMAGE_REL_ARM_BRANCH11),
- STRING_PAIR(IMAGE_REL_ARM_TOKEN),
- STRING_PAIR(IMAGE_REL_ARM_BLX24),
- STRING_PAIR(IMAGE_REL_ARM_BLX11),
- STRING_PAIR(IMAGE_REL_ARM_SECTION),
- STRING_PAIR(IMAGE_REL_ARM_SECREL),
- STRING_PAIR(IMAGE_REL_ARM_MOV32A),
- STRING_PAIR(IMAGE_REL_ARM_MOV32T),
- STRING_PAIR(IMAGE_REL_ARM_BRANCH20T),
- STRING_PAIR(IMAGE_REL_ARM_BRANCH24T),
- STRING_PAIR(IMAGE_REL_ARM_BLX23T)
-};
-#undef STRING_PAIR
-
-namespace yaml { // COFF-specific yaml-writing specific routines
-
-static raw_ostream &writeName(raw_ostream &Out,
- const char *Name, std::size_t NameSize) {
- for (std::size_t i = 0; i < NameSize; ++i) {
- if (!Name[i]) break;
- Out << Name[i];
- }
- return Out;