## Check that we are able to yamalize the SHT_GNU_verneed section.
## Check we don't dump the `Info` field when its value
## is equal to the number of version dependencies.

# RUN: yaml2obj %s -o %t
# RUN: obj2yaml %t | FileCheck %s

# CHECK:      - Name:            .gnu.version_r
# CHECK-NEXT:   Type:            SHT_GNU_verneed
# CHECK-NEXT:   Flags:           [ SHF_ALLOC ]
# CHECK-NEXT:   Address:         0x200250
# CHECK-NEXT:   Link:            .dynstr
# CHECK-NEXT:   AddressAlign:    0x4
# INFO-NEXT:    Info:            0x3
# CHECK-NEXT:   Dependencies:
# CHECK-NEXT:     - Version:         1
# CHECK-NEXT:       File:            dso.so.0
# CHECK-NEXT:       Entries:
# CHECK-NEXT:         - Name:            v1
# CHECK-NEXT:           Hash:            1937
# CHECK-NEXT:           Flags:           10
# CHECK-NEXT:           Other:           3
# CHECK-NEXT:         - Name:            v2
# CHECK-NEXT:           Hash:            1938
# CHECK-NEXT:           Flags:           11
# CHECK-NEXT:           Other:           4
# CHECK-NEXT:     - Version:         1
# CHECK-NEXT:       File:            dso.so.1
# CHECK-NEXT:       Entries:
# CHECK-NEXT:         - Name:            v3
# CHECK-NEXT:           Hash:            1939
# CHECK-NEXT:           Flags:           12
# CHECK-NEXT:           Other:           2

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
  Entry: 0x0000000000201000
Sections:
  - Name:         .gnu.version_r
    Type:         SHT_GNU_verneed
    Flags:        [ SHF_ALLOC ]
    Address:      0x200250
    AddressAlign: 4
    Info:         [[INFO=<none>]]
    Dependencies:
      - Version:         1
        File:            dso.so.0
        Entries:
          - Name:            v1
            Hash:            1937
            Flags:           10
            Other:           3
          - Name:            v2
            Hash:            1938
            Flags:           11
            Other:           4
      - Version:         1
        File:            dso.so.1
        Entries:
          - Name:            v3
            Hash:            1939
            Flags:           12
            Other:           2
DynamicSymbols:
  - Name:    f1
    Binding: STB_GLOBAL

## Check we dump the `Info` field when its value
## is not equal to the number of version dependencies.

# RUN: yaml2obj %s -DINFO=0x3 -o %t.info
# RUN: obj2yaml %t.info | FileCheck %s --check-prefixes=CHECK,INFO
