## Show that the value field is omitted when a relocation does not reference a symbol.
## In other cases, particularly when a symbol has a zero value or when it has an empty
## name, we print it. Test for both static and dynamic relocation printing.

# RUN: yaml2obj %s -o %t
# RUN: llvm-readelf --relocations --dyn-relocations %t 2>&1 | FileCheck %s -DFILE=%t

# CHECK:      Relocation section '.rela.text' at offset {{.*}} contains 5 entries:
# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
# CHECK-NEXT: 0000000000000000  0000000000000000 R_X86_64_NONE                           1
# CHECK-NEXT: 0000000000000000  0000000100000000 R_X86_64_NONE          0000000000000000 sym + 1
# CHECK-NEXT: 0000000000000000  0000000200000000 R_X86_64_NONE          0000000000000123 456
# CHECK-NEXT: warning: '[[FILE]]': unable to get section index for symbol with st_shndx = 0x0 (SHN_UNDEF)
# CHECK-NEXT: 0000000000000000  0000000300000000 R_X86_64_NONE          0000000000000000 <?> + 678
# CHECK-NEXT: 0000000000000000  0000000400000000 R_X86_64_NONE          0000000000000000 2

# CHECK:      Relocation section '.rela.dyn' at offset {{.*}} contains 5 entries:
# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
# CHECK-NEXT: 0000000000000000  0000000000000000 R_X86_64_NONE                           1
# CHECK-NEXT: 0000000000000000  0000000100000000 R_X86_64_NONE          0000000000000000 sym + 1
# CHECK-NEXT: 0000000000000000  0000000200000000 R_X86_64_NONE          0000000000000123 456
# CHECK-NEXT: 0000000000000000  0000000300000000 R_X86_64_NONE          0000000000000000 <?> + 678
# CHECK-NEXT: 0000000000000000  0000000400000000 R_X86_64_NONE          0000000000000000 2

# CHECK:      'RELA' relocation section at offset {{.*}} contains 120 bytes:
# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
# CHECK-NEXT: 0000000000000000  0000000000000000 R_X86_64_NONE                           1
# CHECK-NEXT: 0000000000000000  0000000100000000 R_X86_64_NONE          0000000000000000 sym + 1
# CHECK-NEXT: 0000000000000000  0000000200000000 R_X86_64_NONE          0000000000000123 456
# CHECK-NEXT: 0000000000000000  0000000300000000 R_X86_64_NONE          0000000000000000 678
# CHECK-NEXT: 0000000000000000  0000000400000000 R_X86_64_NONE          0000000000000000 2

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
    Size: 0x10
  - Name: .rela.text
    Type: SHT_RELA
    Link: .symtab
    Info: .text
    Relocations:
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 1
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 1
        Symbol: sym
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 0x456
        Symbol: 2
      - Offset: 0
        Addend: 0x678
        Type:   R_X86_64_NONE
        Symbol: 3
## References a symbol with a zero value and an empty name.
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 2
        Symbol: 4
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Flags: [SHF_ALLOC]
    Address: 0x1000
    AddressAlign: 0x1000
    Entries:
      - Tag: DT_RELA
        Value: 0x1100
      - Tag: DT_RELASZ
        Value: 120
      - Tag: DT_RELAENT
        Value: 24
      - Tag: DT_NULL
        Value: 0
  - Name: .rela.dyn
    Type: SHT_RELA
    Flags: [SHF_ALLOC]
    Info: .text
    Address: 0x1100
    AddressAlign: 0x100
    Relocations:
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 1
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 1
        Symbol: sym
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 0x456
        Symbol: 2
      - Offset: 0
        Addend: 0x678
        Type:   R_X86_64_NONE
        Symbol: 3
## References a symbol with a zero value and an empty name.
      - Offset: 0
        Type: R_X86_64_NONE
        Addend: 2
        Symbol: 4
Symbols:
  - Name:    sym
    Value:   0
    Section: .text
    Binding: STB_GLOBAL
  - Value:   0x123
    Section: .text
    Binding: STB_GLOBAL
  - Type:  STT_SECTION
    Index: 0
  - Value:   0x0
    Section: .text
    Binding: STB_GLOBAL
DynamicSymbols:
  - Name:    sym
    Value:   0
    Section: .text
    Binding: STB_GLOBAL
  - Value:   0x123
    Section: .text
    Binding: STB_GLOBAL
  - Type:  STT_SECTION
    Index: 0
  - Value:   0x0
    Section: .text
    Binding: STB_GLOBAL
ProgramHeaders:
  - Type:     PT_LOAD
    VAddr:    0x1000
    FirstSec: .dynamic
    LastSec:  .rela.dyn
  - Type:     PT_DYNAMIC
    VAddr:    0x1000
    FirstSec: .dynamic
    LastSec:  .dynamic
