# Verify that lld-link outputs sorted base relocations, even if the input file has unsorted entries.

# RUN: yaml2obj %s -o %t.obj
# RUN: lld-link -dll -entry:sym -machine:amd64 -out:%t.dll %t.obj
# RUN: llvm-readobj --coff-basereloc %t.dll | FileCheck %s

# CHECK:      BaseReloc [
# CHECK-NEXT:   Entry {
# CHECK-NEXT:     Type: DIR64
# CHECK-NEXT:     Address: 0x2000
# CHECK-NEXT:   }
# CHECK-NEXT:   Entry {
# CHECK-NEXT:     Type: DIR64
# CHECK-NEXT:     Address: 0x2008
# CHECK-NEXT:   }
# CHECK-NEXT:   Entry {
# CHECK-NEXT:     Type: DIR64
# CHECK-NEXT:     Address: 0x2010
# CHECK-NEXT:   }

--- !COFF
header:
  Machine:         IMAGE_FILE_MACHINE_AMD64
  Characteristics: [  ]
sections:
  - Name:            .text
    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
    Alignment:       4
    SectionData:     C3
    SizeOfRawData:   1
  - Name:            .test
    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
    Alignment:       1
    SectionData:     '000000000000000000000000000000000000000000000000'
    SizeOfRawData:   24
    Relocations:
      - VirtualAddress:  16
        SymbolName:      sym
        Type:            IMAGE_REL_AMD64_ADDR64
      - VirtualAddress:  0
        SymbolName:      sym
        Type:            IMAGE_REL_AMD64_ADDR64
      - VirtualAddress:  8
        SymbolName:      sym
        Type:            IMAGE_REL_AMD64_ADDR64
symbols:
  - Name:            .text
    Value:           0
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition:
      Length:          1
      NumberOfRelocations: 0
      NumberOfLinenumbers: 0
      CheckSum:        40735498
      Number:          1
  - Name:            .test
    Value:           0
    SectionNumber:   2
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition:
      Length:          24
      NumberOfRelocations: 3
      NumberOfLinenumbers: 0
      CheckSum:        0
      Number:          2
  - Name:            sym
    Value:           0
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
...
