## Show that --disassemble + --reloc prints relocations inline and does not dump
## the relocation sections.

# RUN: yaml2obj %s --docnum=1 -o %t1.o
# RUN: llvm-objdump %t1.o -d -r | FileCheck %s --implicit-check-not="RELOCATION RECORDS"

# CHECK:      0: e8 00 00 00 00                callq   0x5 <.text+0x5>
# CHECK-NEXT:          0000000000000001:  R_X86_64_PC32        foo-0x4
# CHECK-NEXT:          0000000000000002:  R_X86_64_NONE        bar+0x8
# CHECK-NEXT: 5: e8 00 00 00 00                callq   0xa <.text+0xa>
# CHECK-NEXT:          0000000000000006:  R_X86_64_PLT32       foo+0x1

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_EXECINSTR]
    Content: 'e800000000e800000000'
  - Name:    .rela.text
    Type:    SHT_RELA
    Info:    .text
    Relocations:
      - Offset: 1
        Symbol: foo
        Type:   R_X86_64_PC32
        Addend: -4
      - Offset: 2
        Symbol: bar
        Type:   R_X86_64_NONE
        Addend: 8
      - Offset: 6
        Symbol: foo
        Type:   R_X86_64_PLT32
        Addend: 1
Symbols:
  - Name: foo
  - Name: bar

## Check we report an error if the relocated section identified by the
## sh_info field of a relocation section is invalid.

# RUN: yaml2obj %s --docnum=2 -o %t2.o
# RUN: not llvm-objdump %t2.o -d --reloc 2>&1 | FileCheck %s -DFILE=%t2.o --check-prefix=ERR

# ERR: error: '[[FILE]]': section (1): failed to get a relocated section: invalid section index: 255

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
- Name: .rela.debug_info
  Type: SHT_RELA
  Link: 0
  Info: 0xFF
  Relocations: []

## Check ranges of addends being displayed in a dump of relocations mixed with disassembly.
# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: llvm-objdump -d -r %t3 | FileCheck %s --check-prefix=ADDENDS

# ADDENDS: Disassembly of section .text:
# ADDENDS: R_X86_64_64 glob-0x8000000000000000
# ADDENDS: R_X86_64_64 glob+0x7fffffffffffffff
# ADDENDS: R_X86_64_64 glob-0x1
# ADDENDS: R_X86_64_64 glob+0x12345678
# ADDENDS: R_X86_64_64 glob{{$}}

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
- Name:  .text
  Type:  SHT_PROGBITS
  Size:  8
  Flags: [SHF_EXECINSTR,SHF_ALLOC]
- Name: .rela.text
  Type: SHT_RELA
  Info: .text
  Relocations:
    - Offset: 0x0
      Addend: -9223372036854775808
      Symbol: glob
      Type:   R_X86_64_64
    - Offset: 0x1
      Symbol: glob
      Type:   R_X86_64_64
      Addend: 9223372036854775807
    - Offset: 0x2
      Symbol: glob
      Type:   R_X86_64_64
      Addend: -1
    - Offset: 0x3
      Symbol: glob
      Type:   R_X86_64_64
      Addend: 0x12345678
    - Offset: 0x4
      Symbol: glob
      Type:   R_X86_64_64
      Addend: 0
Symbols:
  - Name:    glob
    Section: .text
    Value:   0x0
    Size:    0
    Binding: STB_GLOBAL
