## 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