| ## For implicit string 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 .strtab and the SHF_ALLOC flag for .dynstr by default. |
| |
| # RUN: yaml2obj --docnum=1 %s -o %t1 |
| # RUN: llvm-readobj %t1 -S | FileCheck %s --check-prefix=CASE1 |
| |
| # CASE1: Name: .strtab |
| # CASE1-NEXT: Type: SHT_STRTAB |
| # CASE1-NEXT: Flags [ |
| # CASE1-NEXT: ] |
| # CASE1: Name: .dynstr |
| # CASE1-NEXT: Type: SHT_STRTAB |
| # CASE1-NEXT: Flags [ |
| # CASE1-NEXT: SHF_ALLOC |
| # CASE1-NEXT: ] |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .strtab |
| Type: SHT_STRTAB |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| |
| ## Check we can set arbitrary flags for .strtab/.dynstr. |
| |
| # RUN: yaml2obj --docnum=2 %s -o %t2 |
| # RUN: llvm-readobj %t2 -S | FileCheck %s --check-prefix=CASE2 |
| |
| # CASE2: Name: .strtab |
| # CASE2-NEXT: Type: SHT_STRTAB |
| # CASE2-NEXT: Flags [ |
| # CASE2-NEXT: SHF_ALLOC |
| # CASE2-NEXT: SHF_STRINGS |
| # CASE2-NEXT: ] |
| # CASE2: Name: .dynstr |
| # CASE2-NEXT: Type: SHT_STRTAB |
| # CASE2-NEXT: Flags [ |
| # CASE2-NEXT: SHF_STRINGS |
| # CASE2-NEXT: ] |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .strtab |
| Type: SHT_STRTAB |
| Flags: [ SHF_ALLOC, SHF_STRINGS ] |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Flags: [ SHF_STRINGS ] |
| |
| ## Check no flags are set by default for .strtab 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: .strtab |
| # CASE3-NEXT: Type: SHT_STRTAB |
| # CASE3-NEXT: Flags [ |
| # CASE3-NEXT: ] |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |