# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -r %t | FileCheck %s --check-prefix=RELOCS
# RUN: obj2yaml %t | FileCheck %s --check-prefix=YAML
# RELOCS: Relocations [
# RELOCS-NEXT: Section (1) .text {
# RELOCS-NEXT: 0x3 IMAGE_REL_AMD64_REL32 .rdata (0)
# RELOCS-NEXT: 0xA IMAGE_REL_AMD64_REL32 .rdata (1)
# RELOCS-NEXT: 0x11 IMAGE_REL_AMD64_REL32 foo (2)
# RELOCS-NEXT: }
# RELOCS-NEXT: ]
## Check that we usually output relocations with SymbolName.
## For relocations with a non-unique symbol name, output
## SymbolTableIndex instead.
# YAML: Relocations:
# YAML-NEXT: - VirtualAddress: 3
# YAML-NEXT: SymbolTableIndex: 0
# YAML-NEXT: Type: IMAGE_REL_AMD64_REL32
# YAML-NEXT: - VirtualAddress: 10
# YAML-NEXT: SymbolTableIndex: 1
# YAML-NEXT: Type: IMAGE_REL_AMD64_REL32
# YAML-NEXT: - VirtualAddress: 17
# YAML-NEXT: SymbolName: foo
# YAML-NEXT: Type: IMAGE_REL_AMD64_REL32
--- !COFF
header:
Machine: IMAGE_FILE_MACHINE_AMD64
Characteristics: [ ]
sections:
- Name: .text
Characteristics: [ ]
Alignment: 4
SectionData: 488B0500000000488B0500000000488B0500000000
Relocations:
- VirtualAddress: 3
SymbolTableIndex: 0
Type: IMAGE_REL_AMD64_REL32
- VirtualAddress: 10
SymbolTableIndex: 1
Type: IMAGE_REL_AMD64_REL32
- VirtualAddress: 17
SymbolName: foo
Type: IMAGE_REL_AMD64_REL32
- Name: .rdata
Characteristics: [ ]
Alignment: 1
SectionData: '00'
- Name: .rdata
Characteristics: [ ]
Alignment: 1
SectionData: '01'
symbols:
- Name: .rdata
Value: 0
SectionNumber: 2
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_STATIC
- Name: .rdata
Value: 0
SectionNumber: 3
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_STATIC
- Name: foo
Value: 0
SectionNumber: 3
SimpleType: IMAGE_SYM_TYPE_NULL
ComplexType: IMAGE_SYM_DTYPE_NULL
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
...