llvm/llvm/test/tools/llvm-objdump/ELF/verneed.test

# RUN: yaml2obj %s -o %t
# RUN: llvm-objdump -p %t | FileCheck %s --strict-whitespace --match-full-lines

#       CHECK:Dynamic Section:
# CHECK-EMPTY:
#  CHECK-NEXT:Version References:
#  CHECK-NEXT:  required from dso.so.0:
#  CHECK-NEXT:    0x000004d2 0x0a 03 v1
#  CHECK-NEXT:    0x0000162e 0x0b 04 v2
#  CHECK-NEXT:  required from dso.so.1:
#  CHECK-NEXT:    0x000011d7 0x0c 02 v3

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_EXEC
  Machine:         EM_X86_64
  Entry:           0x0000000000201000
Sections:
  - Name:            .gnu.version_r
    Type:            SHT_GNU_verneed
    Flags:           [ SHF_ALLOC ]
    Address:         0x0000000000200250
    Link:            .dynstr
    AddressAlign:    0x0000000000000004
    Dependencies:
      - Version:         1
        File:            dso.so.0
        Entries:
          - Name:            v1
            Hash:            1234
            Flags:           10
            Other:           3
          - Name:            v2
            Hash:            5678
            Flags:           11
            Other:           4
      - Version:         1
        File:            dso.so.1
        Entries:
          - Name:            v3
            Hash:            4567
            Flags:           12
            Other:           2
DynamicSymbols:
  - Name:    f1
    Binding: STB_GLOBAL

# RUN: yaml2obj --docnum=2 %s -o %t.empty
# RUN: llvm-objdump -p %t.empty 2>&1 | FileCheck %s --check-prefix=EMPTY --implicit-check-not=warning:

# EMPTY:     Version References:
# EMPTY-NOT: {{.}}

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name:            .gnu.version_r
    Type:            SHT_GNU_verneed
    Flags:           [ SHF_ALLOC ]
DynamicSymbols:
  - Name:    f1
    Binding: STB_GLOBAL