Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / yaml2obj / symtab-implicit-sections-flags.yaml
blob55ea02ab88363e052a886982c4a03edcc70ea0e3
1 ## For implicit symbol 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 .symtab and the SHF_ALLOC flag for .dynsym by default.
7 # RUN: yaml2obj --docnum=1 %s -o %t1
8 # RUN: llvm-readobj %t1 -S | FileCheck %s --check-prefix=CASE1
10 # CASE1:      Name: .symtab
11 # CASE1-NEXT: Type: SHT_SYMTAB
12 # CASE1-NEXT: Flags [
13 # CASE1-NEXT: ]
14 # CASE1:      Name: .dynsym
15 # CASE1-NEXT: Type: SHT_DYNSYM
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: .symtab
28     Type: SHT_SYMTAB
29   - Name: .dynsym
30     Type: SHT_DYNSYM
32 ## Check we can set arbitrary flags for .symtab/.dynsym.
34 # RUN: yaml2obj --docnum=2 %s -o %t2
35 # RUN: llvm-readobj %t2 -S | FileCheck %s --check-prefix=CASE2
37 # CASE2:      Name: .symtab
38 # CASE2-NEXT: Type: SHT_SYMTAB
39 # CASE2-NEXT: Flags [
40 # CASE2-NEXT:   SHF_ALLOC
41 # CASE2-NEXT:   SHF_STRINGS
42 # CASE2-NEXT: ]
43 # CASE2:      Name: .dynsym
44 # CASE2-NEXT: Type: SHT_DYNSYM
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:  .symtab
57     Type:  SHT_SYMTAB
58     Flags: [ SHF_ALLOC, SHF_STRINGS ]
59   - Name:  .dynsym
60     Type:  SHT_DYNSYM
61     Flags: [ SHF_STRINGS ]
63 ## Check no flags are set by default for .symtab 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: .symtab
70 # CASE3-NEXT: Type: SHT_SYMTAB
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