RUN: obj2yaml %p/Inputs/trivial-object-test.coff-i386 | FileCheck %s --check-prefix COFF-I386
RUN: obj2yaml %p/Inputs/trivial-object-test.coff-x86-64 | FileCheck %s --check-prefix COFF-X86-64


COFF-I386: header: !Header
COFF-I386-NEXT:  Machine: IMAGE_FILE_MACHINE_I386 # (0x14c)

COFF-I386: sections:
COFF-I386-NEXT:   - !Section
COFF-I386-NEXT:    Name: .text
COFF-I386-NEXT:    Characteristics: [IMAGE_SCN_CNT_CODE, IMAGE_SCN_ALIGN_16BYTES, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ, ] # 0x60500020
COFF-I386-NEXT:    SectionData:  !hex "83EC0CC744240800000000C7042400000000E800000000E8000000008B44240883C40CC3" # |....D$.......$...............D$.....|

COFF-I386:    Relocations:
COFF-I386-NEXT:      - !Relocation
COFF-I386-NEXT:        VirtualAddress: 0xe
COFF-I386-NEXT:        SymbolTableIndex: 5
COFF-I386-NEXT:        Type: IMAGE_REL_I386_DIR32

COFF-I386:      - !Relocation
COFF-I386-NEXT:        VirtualAddress: 0x13
COFF-I386-NEXT:        SymbolTableIndex: 6
COFF-I386-NEXT:        Type: IMAGE_REL_I386_REL32

COFF-I386:      - !Relocation
COFF-I386-NEXT:        VirtualAddress: 0x18
COFF-I386-NEXT:        SymbolTableIndex: 7
COFF-I386-NEXT:        Type: IMAGE_REL_I386_REL32

COFF-I386:  - !Section
COFF-I386-NEXT:    Name: .data
COFF-I386-NEXT:    Characteristics: [IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_ALIGN_1BYTES, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE, ] # 0xc0100040
COFF-I386-NEXT:    SectionData:  !hex "48656C6C6F20576F726C642100" # |Hello World!.|

COFF-I386: symbols:
COFF-I386-NEXT:  - !Symbol
COFF-I386-NEXT:    Name: .text
COFF-I386-NEXT:    Value: 0
COFF-I386-NEXT:    SectionNumber: 1
COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
COFF-I386-NEXT:    NumberOfAuxSymbols: 1
COFF-I386-NEXT:    AuxillaryData:  !hex "240000000300000000000000010000000000" # |$.................|

COFF-I386:  - !Symbol
COFF-I386-NEXT:    Name: .data
COFF-I386-NEXT:    Value: 0
COFF-I386-NEXT:    SectionNumber: 2
COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
COFF-I386-NEXT:    NumberOfAuxSymbols: 1
COFF-I386-NEXT:    AuxillaryData:  !hex "0D0000000000000000000000020000000000" # |..................|

COFF-I386:  - !Symbol
COFF-I386-NEXT:    Name: _main
COFF-I386-NEXT:    Value: 0
COFF-I386-NEXT:    SectionNumber: 1
COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_FUNCTION # (2)
COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)

COFF-I386:  - !Symbol
COFF-I386-NEXT:    Name: L_.str
COFF-I386-NEXT:    Value: 0
COFF-I386-NEXT:    SectionNumber: 2
COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_STATIC # (3)

COFF-I386:  - !Symbol
COFF-I386-NEXT:    Name: _puts
COFF-I386-NEXT:    Value: 0
COFF-I386-NEXT:    SectionNumber: 0
COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)

COFF-I386:  - !Symbol
COFF-I386-NEXT:    Name: _SomeOtherFunction
COFF-I386-NEXT:    Value: 0
COFF-I386-NEXT:    SectionNumber: 0
COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)


COFF-X86-64: header: !Header
COFF-X86-64-NEXT:  Machine: IMAGE_FILE_MACHINE_AMD64 # (0x8664)

COFF-X86-64: sections:
COFF-X86-64-NEXT:   - !Section
COFF-X86-64-NEXT:     Name: .text
COFF-X86-64-NEXT:     Characteristics: [IMAGE_SCN_CNT_CODE, IMAGE_SCN_ALIGN_16BYTES, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ, ] # 0x60500020
COFF-X86-64-NEXT:     SectionData:  !hex "4883EC28C744242400000000488D0D00000000E800000000E8000000008B4424244883C428C3" # |H..(.D$$....H.................D$$H..(.|

COFF-X86-64:     Relocations:
COFF-X86-64-NEXT:       - !Relocation
COFF-X86-64-NEXT:         VirtualAddress: 0xf
COFF-X86-64-NEXT:         SymbolTableIndex: 5
COFF-X86-64-NEXT:         Type: IMAGE_REL_AMD64_REL32

COFF-X86-64:       - !Relocation
COFF-X86-64-NEXT:         VirtualAddress: 0x14
COFF-X86-64-NEXT:         SymbolTableIndex: 6
COFF-X86-64-NEXT:         Type: IMAGE_REL_AMD64_REL32

COFF-X86-64:       - !Relocation
COFF-X86-64-NEXT:         VirtualAddress: 0x19
COFF-X86-64-NEXT:         SymbolTableIndex: 7
COFF-X86-64-NEXT:         Type: IMAGE_REL_AMD64_REL32

COFF-X86-64:   - !Section
COFF-X86-64-NEXT:     Name: .data
COFF-X86-64-NEXT:     Characteristics: [IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_ALIGN_1BYTES, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE, ] # 0xc0100040
COFF-X86-64-NEXT:     SectionData:  !hex "48656C6C6F20576F726C642100" # |Hello World!.|

COFF-X86-64: symbols:
COFF-X86-64-NEXT:   - !Symbol
COFF-X86-64-NEXT:     Name: .text
COFF-X86-64-NEXT:     Value: 0
COFF-X86-64-NEXT:     SectionNumber: 1
COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
COFF-X86-64-NEXT:     NumberOfAuxSymbols: 1
COFF-X86-64-NEXT:     AuxillaryData:  !hex "260000000300000000000000010000000000" # |&.................|

COFF-X86-64:   - !Symbol
COFF-X86-64-NEXT:     Name: .data
COFF-X86-64-NEXT:     Value: 0
COFF-X86-64-NEXT:     SectionNumber: 2
COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
COFF-X86-64-NEXT:     NumberOfAuxSymbols: 1
COFF-X86-64-NEXT:     AuxillaryData:  !hex "0D0000000000000000000000020000000000" # |..................|

COFF-X86-64:   - !Symbol
COFF-X86-64-NEXT:     Name: main
COFF-X86-64-NEXT:     Value: 0
COFF-X86-64-NEXT:     SectionNumber: 1
COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)

COFF-X86-64:   - !Symbol
COFF-X86-64-NEXT:     Name: L.str
COFF-X86-64-NEXT:     Value: 0
COFF-X86-64-NEXT:     SectionNumber: 2
COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_STATIC # (3)

COFF-X86-64:   - !Symbol
COFF-X86-64-NEXT:     Name: puts
COFF-X86-64-NEXT:     Value: 0
COFF-X86-64-NEXT:     SectionNumber: 0
COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)

COFF-X86-64:   - !Symbol
COFF-X86-64-NEXT:     Name: SomeOtherFunction
COFF-X86-64-NEXT:     Value: 0
COFF-X86-64-NEXT:     SectionNumber: 0
COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL # (0)
COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)