# Regression test for the following case:
# $ cat /tmp/a.c
# int main() { return 0; }
# $ clang -static /tmp/a.c -o /tmp/a
# $ llvm-strip /tmp/a -o /tmp/b
# llvm-strip: error: Link field value 0 in section .rela.plt is invalid.

# RUN: yaml2obj %s -o %t.original
# RUN: llvm-strip %t.original -o %t.stripped
# RUN: llvm-readobj --sections %t.original | FileCheck %s
# RUN: llvm-readobj --sections %t.stripped | FileCheck %s

!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:
  - Name:          .text
    Type:          SHT_PROGBITS
    Flags:         [ SHF_ALLOC, SHF_EXECINSTR ]
  - Name:          .rela.plt
    Type:          SHT_RELA
    Flags:         [ SHF_ALLOC, SHF_INFO_LINK ]
    Info:          .got.plt
    Link:          0
  - Name:          .plt
    Type:          SHT_PROGBITS
    Flags:         [ SHF_ALLOC, SHF_EXECINSTR ]
  - Name:          .got.plt
    Type:          SHT_PROGBITS
    Flags:         [ SHF_ALLOC, SHF_WRITE ]

# CHECK:      Name: .rela.plt
# CHECK-NEXT: Type: SHT_RELA
# CHECK-NEXT: Flags [
# CHECK-NEXT:   SHF_ALLOC
# CHECK-NEXT:   SHF_INFO_LINK
# CHECK-NEXT: ]
# CHECK-NEXT: Address:
# CHECK-NEXT: Offset:
# CHECK-NEXT: Size: 0
# CHECK-NEXT: Link: 0
# CHECK-NEXT: Info: 4
