llvm/bolt/test/X86/phdr-out-of-order.test

## Check that llvm-bolt correctly processes a binary with program headers and
## corresponding sections specified in non-ascending address order.

RUN: split-file %s %t
RUN: yaml2obj %t/yaml -o %t.exe --max-size=0
RUN: llvm-bolt %t.exe -o %t.bolt --allow-stripped
RUN: llvm-readelf -WS %t.bolt | FileCheck %s

CHECK:      .a PROGBITS 0000000000400000 [[#%.6x, OFFSET:]] 000001
CHECK-NEXT: .b PROGBITS 0000000000000000 [[#%.6x, OFFSET+1]] 000001
CHECK-NEXT: .c PROGBITS 0000000000600000 [[#%.6x, OFFSET+2]] 000001

#--- yaml
--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data: ELFDATA2LSB
  Type: ET_EXEC
  Machine: EM_X86_64
ProgramHeaders:
  - Type: PT_LOAD
    FirstSec: .a
    LastSec: .a
    VAddr: 0x400000
  - Type: PT_LOAD
    FirstSec: .b
    LastSec: .b
    VAddr: 0x0
  - Type: PT_LOAD
    FirstSec: .c
    LastSec: .c
    VAddr: 0x600000
Sections:
  - Name: .a
    Type: SHT_PROGBITS
    Flags: [ SHF_ALLOC ]
    Content: 00
    AddressAlign: 0x1
    Address: 0x400000
  - Name: .b
    Type: SHT_PROGBITS
    Flags: [ SHF_ALLOC ]
    Content: 00
    AddressAlign: 0x1
    Address: 0x0
  - Name: .c
    Type: SHT_PROGBITS
    Flags: [ SHF_ALLOC ]
    Content: 00
    AddressAlign: 0x1
    Address: 0x600000
...