## For implicit symbol table sections, the `Flags` field can also
## be specified in YAML. Here we test the behavior in different cases.

## When flags are not explicitly specified, yaml2obj assigns no flags
## for .symtab and the SHF_ALLOC flag for .dynsym by default.

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-readobj %t1 -S | FileCheck %s --check-prefix=CASE1

# CASE1:      Name: .symtab
# CASE1-NEXT: Type: SHT_SYMTAB
# CASE1-NEXT: Flags [
# CASE1-NEXT: ]
# CASE1:      Name: .dynsym
# CASE1-NEXT: Type: SHT_DYNSYM
# CASE1-NEXT: Flags [
# CASE1-NEXT:   SHF_ALLOC
# CASE1-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .symtab
    Type: SHT_SYMTAB
  - Name: .dynsym
    Type: SHT_DYNSYM

## Check we can set arbitrary flags for .symtab/.dynsym.

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: llvm-readobj %t2 -S | FileCheck %s --check-prefix=CASE2

# CASE2:      Name: .symtab
# CASE2-NEXT: Type: SHT_SYMTAB
# CASE2-NEXT: Flags [
# CASE2-NEXT:   SHF_ALLOC
# CASE2-NEXT:   SHF_STRINGS
# CASE2-NEXT: ]
# CASE2:      Name: .dynsym
# CASE2-NEXT: Type: SHT_DYNSYM
# CASE2-NEXT: Flags [
# CASE2-NEXT:   SHF_STRINGS
# CASE2-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:  .symtab
    Type:  SHT_SYMTAB
    Flags: [ SHF_ALLOC, SHF_STRINGS ]
  - Name:  .dynsym
    Type:  SHT_DYNSYM
    Flags: [ SHF_STRINGS ]

## Check no flags are set by default for .symtab when it is not
## described in the YAML.

# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: llvm-readobj %t3 -S | FileCheck %s --check-prefix=CASE3

# CASE3:      Name: .symtab
# CASE3-NEXT: Type: SHT_SYMTAB
# CASE3-NEXT: Flags [
# CASE3-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Symbols: []
