## Check that a malformed NT_GNU_ABI_TAG note can be dumped without crashing.
# RUN: yaml2obj %s -o %t
# RUN: llvm-readelf --notes %t | FileCheck %s --check-prefix=GNU
# RUN: llvm-readobj --elf-output-style LLVM --notes %t | FileCheck %s --check-prefix=LLVM
## GNU binutils does not print the raw description data when encountering an
## invalid NT_GNU_ABI_TAG, but in LLVM style we print it.

# GNU:      Displaying notes found in: .note.ABI-tag
# GNU-NEXT:   Owner                 Data size       Description
# GNU-NEXT:   GNU                   0x00000004      NT_GNU_ABI_TAG (ABI version tag)
# GNU-NEXT:     <corrupt GNU_ABI_TAG>
# GNU-EMPTY:

# LLVM:      Notes [
# LLVM-NEXT:   NoteSection {
# LLVM-NEXT:     Name: .note.ABI-tag
# LLVM-NEXT:     Offset:
# LLVM-NEXT:     Size: 0x14
# LLVM-NEXT:     Note {
# LLVM-NEXT:       Owner: GNU
# LLVM-NEXT:       Data size: 0x4
# LLVM-NEXT:       Type: NT_GNU_ABI_TAG (ABI version tag)
# LLVM-NEXT:       ABI: <corrupt GNU_ABI_TAG>
# LLVM-NEXT:       Description data (
# LLVM-NEXT:         0000: 00000000 |....|
# LLVM-NEXT:       )
# LLVM-NEXT:     }
# LLVM-NEXT:   }
# LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:
  - Name:            .note.ABI-tag
    Type:            SHT_NOTE
    AddressAlign:    0x0000000000000004
    Content:         040000000400000001000000474E550000000000
