Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / yaml2obj / strtab-implicit-sections-flags.yaml
blob2697145d1d0e9e659dd43ec3e1a8c52bd034080f
1 ## For implicit string table sections, the `Flags` field can also
2 ## be specified in YAML. Here we test the behavior in different cases.
4 ## When flags are not explicitly specified, yaml2obj assigns no flags
5 ## for .strtab and the SHF_ALLOC flag for .dynstr by default.
7 # RUN: yaml2obj --docnum=1 %s -o %t1
8 # RUN: llvm-readobj %t1 -S | FileCheck %s --check-prefix=CASE1
10 # CASE1:      Name: .strtab
11 # CASE1-NEXT: Type: SHT_STRTAB
12 # CASE1-NEXT: Flags [
13 # CASE1-NEXT: ]
14 # CASE1:      Name: .dynstr
15 # CASE1-NEXT: Type: SHT_STRTAB
16 # CASE1-NEXT: Flags [
17 # CASE1-NEXT:   SHF_ALLOC
18 # CASE1-NEXT: ]
20 --- !ELF
21 FileHeader:
22   Class:   ELFCLASS64
23   Data:    ELFDATA2LSB
24   Type:    ET_DYN
25   Machine: EM_X86_64
26 Sections:
27   - Name:    .strtab
28     Type:    SHT_STRTAB
29   - Name:    .dynstr
30     Type:    SHT_STRTAB
32 ## Check we can set arbitrary flags for .strtab/.dynstr.
34 # RUN: yaml2obj --docnum=2 %s -o %t2
35 # RUN: llvm-readobj %t2 -S | FileCheck %s --check-prefix=CASE2
37 # CASE2:      Name: .strtab
38 # CASE2-NEXT: Type: SHT_STRTAB
39 # CASE2-NEXT: Flags [
40 # CASE2-NEXT:   SHF_ALLOC
41 # CASE2-NEXT:   SHF_STRINGS
42 # CASE2-NEXT: ]
43 # CASE2:      Name: .dynstr
44 # CASE2-NEXT: Type: SHT_STRTAB
45 # CASE2-NEXT: Flags [
46 # CASE2-NEXT:   SHF_STRINGS
47 # CASE2-NEXT: ]
49 --- !ELF
50 FileHeader:
51   Class:   ELFCLASS64
52   Data:    ELFDATA2LSB
53   Type:    ET_DYN
54   Machine: EM_X86_64
55 Sections:
56   - Name:  .strtab
57     Type:  SHT_STRTAB
58     Flags: [ SHF_ALLOC, SHF_STRINGS ]
59   - Name:  .dynstr
60     Type:  SHT_STRTAB
61     Flags: [ SHF_STRINGS ]
63 ## Check no flags are set by default for .strtab when it is not
64 ## described in the YAML.
66 # RUN: yaml2obj --docnum=3 %s -o %t3
67 # RUN: llvm-readobj %t3 -S | FileCheck %s --check-prefix=CASE3
69 # CASE3:      Name: .strtab
70 # CASE3-NEXT: Type: SHT_STRTAB
71 # CASE3-NEXT: Flags [
72 # CASE3-NEXT: ]
74 --- !ELF
75 FileHeader:
76   Class:   ELFCLASS64
77   Data:    ELFDATA2LSB
78   Type:    ET_DYN
79   Machine: EM_X86_64