llvm/llvm/test/tools/llvm-objdump/ELF/dynamic-malformed.test

## An empty dynamic section is invalid. Test we report a warning instead of an
## error, so that dumping can continue with other objects.
# RUN: yaml2obj %s --docnum=1 -o %t.empty
# RUN: llvm-objdump -p %t.empty 2>&1 | FileCheck %s -DFILE=%t.empty --check-prefix=EMPTY

# EMPTY:       Program Header:
# EMPTY-NEXT:  warning: '[[FILE]]': invalid empty dynamic section
# EMPTY-EMPTY:

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
Sections:
  - Name: .dynamic
    Type: SHT_DYNAMIC

# RUN: yaml2obj %s --docnum=2 -o %t.nonull
# RUN: llvm-objdump -p %t.nonull 2>&1 | FileCheck %s -DFILE=%t.nonull --check-prefix=NONULL

# NONULL:       Program Header:
# NONULL-NEXT:  warning: '[[FILE]]': dynamic sections must be DT_NULL terminated
# NONULL-EMPTY:

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
Sections:
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Entries:
      - Tag:   DT_SONAME
        Value: 1

# RUN: yaml2obj %s --docnum=3 -o %t.invalidaddr
# RUN: llvm-objdump -p %t.invalidaddr 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t.invalidaddr --implicit-check-not=warning: --check-prefix=ADDR

# ADDR:       Dynamic Section:
# ADDR-NEXT:  warning: '[[FILE]]': virtual address is not in any segment: 0x474
# ADDR-NEXT:    NEEDED       0xffffffffbe5a0b5f
# ADDR-NEXT:    STRTAB       0x0000000000000474

---
!ELF
FileHeader:
  Class: ELFCLASS64
  Data: ELFDATA2LSB
  Type: ET_DYN
Sections:
  - Name: .dynamic
    Type: SHT_DYNAMIC
    Entries:
      - Tag: DT_NEEDED
        Value: 0xFFFFFFFFBE5A0B5F
      - Tag: DT_STRTAB
        Value: 0x474
      - Tag: DT_NULL
        Value: 0x0