## This test checks that yaml2obj correctly handles COFF sections with
## extended relocation tables (IMAGE_SCN_LNK_NRELOC_OVFL).
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj --sections --relocations %t | FileCheck %s --check-prefix=CHECK-OBJ
# RUN: obj2yaml %t | FileCheck %s --check-prefix=CHECK-YAML

# CHECK-OBJ:      Sections [
# CHECK-OBJ-NEXT:   Section {
# CHECK-OBJ-NEXT:     Number: 1
# CHECK-OBJ-NEXT:     Name: .data
# CHECK-OBJ:          RawDataSize: 16
# CHECK-OBJ:          RelocationCount: 65535
# CHECK-OBJ:          Characteristics [
# CHECK-OBJ-NEXT:       IMAGE_SCN_ALIGN_16BYTES
# CHECK-OBJ-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA
# CHECK-OBJ-NEXT:       IMAGE_SCN_LNK_NRELOC_OVFL
# CHECK-OBJ-NEXT:       IMAGE_SCN_MEM_READ
# CHECK-OBJ-NEXT:     ]
# CHECK-OBJ-NEXT:   }
# CHECK-OBJ-NEXT: ]
# CHECK-OBJ-NEXT: Relocations [
# CHECK-OBJ-NEXT:   Section (1) .data {
# CHECK-OBJ-NEXT:     0x0 IMAGE_REL_AMD64_ADDR64 foo (0)
# CHECK-OBJ-NEXT:     0x8 IMAGE_REL_AMD64_ADDR64 bar (1)
# CHECK-OBJ-NEXT:   }
# CHECK-OBJ-NEXT: ]

# CHECK-YAML:      sections:
# CHECK-YAML-NEXT:   - Name:            .data
# CHECK-YAML-NEXT:     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_NRELOC_OVFL, IMAGE_SCN_MEM_READ ]
# CHECK-YAML-NEXT:     Alignment:       16
# CHECK-YAML-NEXT:     SectionData:     '00000000000000000000000000000000'
# CHECK-YAML-NEXT:     Relocations:
# CHECK-YAML-NEXT:       - VirtualAddress:  0
# CHECK-YAML-NEXT:         SymbolName:      foo
# CHECK-YAML-NEXT:         Type:            IMAGE_REL_AMD64_ADDR64
# CHECK-YAML-NEXT:       - VirtualAddress:  8
# CHECK-YAML-NEXT:         SymbolName:      bar
# CHECK-YAML-NEXT:         Type:            IMAGE_REL_AMD64_ADDR64
# CHECK-YAML-NEXT: symbols:

--- !COFF
header:
  Machine:         IMAGE_FILE_MACHINE_AMD64
  Characteristics: [  ]
sections:
  - Name:            .data
    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_NRELOC_OVFL, IMAGE_SCN_MEM_READ ]
    Alignment:       16
    SectionData:     '00000000000000000000000000000000'
    Relocations:
      - VirtualAddress:  0
        SymbolName:      foo
        Type:            IMAGE_REL_AMD64_ADDR64
      - VirtualAddress:  8
        SymbolName:      bar
        Type:            IMAGE_REL_AMD64_ADDR64
symbols:
  - Name:            foo
    Value:           0
    SectionNumber:   0
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
  - Name:            bar
    Value:           0
    SectionNumber:   0
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
...
