# 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 > %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
