verneed-wrong-info.test 1.46 KB
# RUN: yaml2obj %s -o %t
# RUN: llvm-objdump -p %t 2>&1 | FileCheck %s

# We have a SHT_GNU_verneed section with a broken sh_info field
# that says the section contains more entries than it actually has.

# CHECK:      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
    Info:            0x0000000000009999
    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