# This test doesn't attempt to mandate a specific section classification. It is
# here to document the existing behavior and to make sure we don't do something
# completely crazy (like crashing).

# RUN: yaml2obj %s -o %t
# RUN: lldb-test object-file %t | FileCheck %s

# The section is called .data, but it has the SHF_EXECINSTR flag set. Have
# the flag take precedence over the name.
# CHECK-LABEL: Name: .data
# CHECK-NEXT: Type: code

# Section type (SHT_SYMTAB) takes precedence over name-based deduction.
# CHECK-LABEL: Name: .text
# CHECK-NEXT: Type: elf-symbol-table

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_DYN
  Machine:         EM_X86_64
  Entry:           0x00000000000007A0
Sections:
  - Name:            .data
    Type:            SHT_PROGBITS
    Flags:           [ SHF_EXECINSTR, SHF_ALLOC ]
    AddressAlign:    0x0000000000000004
    Content:         DEADBEEFBAADF00D
  - Name:            .text
    Type:            SHT_SYMTAB
    Flags:           [ ]
    Link:            0
    AddressAlign:    0x0000000000000004
    Content:         DEADBEEFBAADF00D
...
