# RUN: yaml2obj %s | llvm-readobj --file-headers -r --expand-relocs - | FileCheck %s --check-prefix COFF-I386
# RUN: yaml2obj -o %t %s
# RUN: llvm-readobj --file-headers -r --expand-relocs %t | FileCheck %s --check-prefix COFF-I386
# COFF-I386: Characteristics [ (0x200)
# COFF-I386-NEXT: IMAGE_FILE_DEBUG_STRIPPED (0x200)
# COFF-I386-NEXT: ]
# COFF-I386: Relocations [
# COFF-I386-NEXT: Section (1) .text {
# COFF-I386-NEXT: Relocation {
# COFF-I386-NEXT: Offset: 0xE
# COFF-I386-NEXT: Type: IMAGE_REL_I386_DIR32 (6)
# COFF-I386-NEXT: Symbol: L_.str
# COFF-I386-NEXT: SymbolIndex: 5
# COFF-I386-NEXT: }
# COFF-I386-NEXT: Relocation {
# COFF-I386-NEXT: Offset: 0x13
# COFF-I386-NEXT: Type: IMAGE_REL_I386_REL32 (20)
# COFF-I386-NEXT: Symbol: _puts
# COFF-I386-NEXT: SymbolIndex: 6
# COFF-I386-NEXT: }
# COFF-I386-NEXT: Relocation {
# COFF-I386-NEXT: Offset: 0x18
# COFF-I386-NEXT: Type: IMAGE_REL_I386_REL32 (20)
# COFF-I386-NEXT: Symbol: _SomeOtherFunction
# COFF-I386-NEXT: SymbolIndex: 7
# COFF-I386-NEXT: }
# COFF-I386-NEXT: }
# COFF-I386-NEXT: ]
!COFF
header: !Header
Machine: IMAGE_FILE_MACHINE_I386 # (0x14c)
Characteristics: [ IMAGE_FILE_DEBUG_STRIPPED ]
sections:
- !Section
Name: .text
Alignment: 16
Characteristics: [IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ, ] # 0x60500020
SectionData: !hex "83EC0CC744240800000000C7042400000000E800000000E8000000008B44240883C40CC3" # |....D$.......$...............D$.....|
Relocations:
- !Relocation
VirtualAddress: 0xe
SymbolName: L_.str
Type: IMAGE_REL_I386_DIR32
- !Relocation
VirtualAddress: 0x13
SymbolName: _puts
Type: IMAGE_REL_I386_REL32
- !Relocation
VirtualAddress: 0x18
SymbolName: _SomeOtherFunction
Type: IMAGE_REL_I386_REL32
- !Section
Name: .data
Alignment: 1
Characteristics: [IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE, ] # 0xc0100040
SectionData: !hex "48656C6C6F20576F726C642100" # |Hello World!.|
symbols:
- !Symbol
Name: .text
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
SectionDefinition:
Length: 36
NumberOfRelocations: 3
NumberOfLinenumbers: 0
CheckSum: 0
Number: 1
- !Symbol
Name: .data
Value: 0
SectionNumber: 2
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
SectionDefinition:
Length: 13
NumberOfRelocations: 0
NumberOfLinenumbers: 0
CheckSum: 0
Number: 2
- !Symbol
Name: _main
Value: 0
SectionNumber: 1
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_FUNCTION # (2)
StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)
- !Symbol
Name: L_.str
Value: 0
SectionNumber: 2
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_STATIC # (3)
- !Symbol
Name: _puts
Value: 0
SectionNumber: 0
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)
- !Symbol
Name: _SomeOtherFunction
Value: 0
SectionNumber: 0
SimpleType: IMAGE_SYM_TYPE_NULL # (0)
ComplexType: IMAGE_SYM_DTYPE_NULL # (0)
StorageClass: IMAGE_SYM_CLASS_EXTERNAL # (2)