Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / tools / llvm-readobj / ELF / section-flags.test
blob15b79c41468236fcdb9525628006d499d2b27adf
1 ## Check how we dump regular ELF section flags.
3 # RUN: yaml2obj %s -o %t.o
4 # RUN: llvm-readobj -S %t.o | FileCheck --check-prefix=LLVM %s
5 # RUN: llvm-readelf -S %t.o | FileCheck --check-prefix=GNU %s
7 # LLVM:      Name: allflags
8 # LLVM-NEXT: Type: SHT_PROGBITS
9 # LLVM-NEXT: Flags [ (0x80200FF7)
10 # LLVM-NEXT:   SHF_ALLOC (0x2)
11 # LLVM-NEXT:   SHF_COMPRESSED (0x800)
12 # LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
13 # LLVM-NEXT:   SHF_EXECINSTR (0x4)
14 # LLVM-NEXT:   SHF_GNU_RETAIN (0x200000)
15 # LLVM-NEXT:   SHF_GROUP (0x200)
16 # LLVM-NEXT:   SHF_INFO_LINK (0x40)
17 # LLVM-NEXT:   SHF_LINK_ORDER (0x80)
18 # LLVM-NEXT:   SHF_MERGE (0x10)
19 # LLVM-NEXT:   SHF_OS_NONCONFORMING (0x100)
20 # LLVM-NEXT:   SHF_STRINGS (0x20)
21 # LLVM-NEXT:   SHF_TLS (0x400)
22 # LLVM-NEXT:   SHF_WRITE (0x1)
23 # LLVM-NEXT: ]
25 # LLVM:      Name: noflags
26 # LLVM-NEXT: Type: SHT_PROGBITS
27 # LLVM-NEXT: Flags [ (0x0)
28 # LLVM-NEXT: ]
30 # LLVM:      Name: write
31 # LLVM-NEXT: Type: SHT_PROGBITS
32 # LLVM-NEXT: Flags [ (0x1)
33 # LLVM-NEXT:   SHF_WRITE (0x1)
34 # LLVM-NEXT: ]
36 # LLVM:      Name: alloc
37 # LLVM-NEXT: Type: SHT_PROGBITS
38 # LLVM-NEXT: Flags [ (0x2)
39 # LLVM-NEXT:   SHF_ALLOC (0x2)
40 # LLVM-NEXT: ]
42 # LLVM:      Name: exec
43 # LLVM-NEXT: Type: SHT_PROGBITS
44 # LLVM-NEXT: Flags [ (0x4)
45 # LLVM-NEXT:   SHF_EXECINSTR (0x4)
46 # LLVM-NEXT: ]
48 # LLVM:      Name: merge
49 # LLVM-NEXT: Type: SHT_PROGBITS
50 # LLVM-NEXT: Flags [ (0x10)
51 # LLVM-NEXT:   SHF_MERGE (0x10)
52 # LLVM-NEXT: ]
54 # LLVM:      Name: strings
55 # LLVM-NEXT: Type: SHT_PROGBITS
56 # LLVM-NEXT: Flags [ (0x20)
57 # LLVM-NEXT:   SHF_STRINGS (0x20)
58 # LLVM-NEXT: ]
60 # LLVM:      Name: infolink
61 # LLVM-NEXT: Type: SHT_PROGBITS
62 # LLVM-NEXT: Flags [ (0x40)
63 # LLVM-NEXT:   SHF_INFO_LINK (0x40)
64 # LLVM-NEXT: ]
66 # LLVM:      Name: linkorder
67 # LLVM-NEXT: Type: SHT_PROGBITS
68 # LLVM-NEXT: Flags [ (0x80)
69 # LLVM-NEXT:   SHF_LINK_ORDER (0x80)
70 # LLVM-NEXT: ]
72 # LLVM:      Name: nonconforming
73 # LLVM-NEXT: Type: SHT_PROGBITS
74 # LLVM-NEXT: Flags [ (0x100)
75 # LLVM-NEXT:   SHF_OS_NONCONFORMING (0x100)
76 # LLVM-NEXT: ]
78 # LLVM:      Name: group
79 # LLVM-NEXT: Type: SHT_PROGBITS
80 # LLVM-NEXT: Flags [ (0x200)
81 # LLVM-NEXT:   SHF_GROUP (0x200)
82 # LLVM-NEXT: ]
84 # LLVM:      Name: tls
85 # LLVM-NEXT: Type: SHT_PROGBITS
86 # LLVM-NEXT: Flags [ (0x400)
87 # LLVM-NEXT:   SHF_TLS (0x400)
88 # LLVM-NEXT: ]
90 # LLVM:      Name: compressed
91 # LLVM-NEXT: Type: SHT_PROGBITS
92 # LLVM-NEXT: Flags [ (0x800)
93 # LLVM-NEXT:   SHF_COMPRESSED (0x800)
94 # LLVM-NEXT: ]
96 ## SHF_GNU_RETAIN is defined in the OS-specific range, but we treat it generic
97 ## and allow it to be used with OSABI values other than GNU and FREEBSD.
98 # LLVM:      Name: retain
99 # LLVM-NEXT: Type: SHT_PROGBITS
100 # LLVM-NEXT: Flags [ (0x200000)
101 # LLVM-NEXT:   SHF_GNU_RETAIN (0x200000)
102 # LLVM-NEXT: ]
104 # LLVM:      Name: exclude
105 # LLVM-NEXT: Type: SHT_PROGBITS
106 # LLVM-NEXT: Flags [ (0x80000000)
107 # LLVM-NEXT:   SHF_EXCLUDE (0x80000000)
108 # LLVM-NEXT: ]
110 # LLVM:      Name: unknown
111 # LLVM-NEXT: Type: SHT_PROGBITS
112 # LLVM-NEXT: Flags [ (0xF0000)
113 # LLVM-NEXT: ]
115 # GNU: [Nr] Name          Type     Address          Off    Size   ES Flg          Lk Inf Al
116 # GNU: [ 1] allflags      PROGBITS 0000000000000000 000040 000000 00 WAXMSILOGTCRE 0   0  0
117 # GNU: [ 2] noflags       PROGBITS 0000000000000000 000040 000000 00              0   0  0
118 # GNU: [ 3] write         PROGBITS 0000000000000000 000040 000000 00 W            0   0  0
119 # GNU: [ 4] alloc         PROGBITS 0000000000000000 000040 000000 00 A            0   0  0
120 # GNU: [ 5] exec          PROGBITS 0000000000000000 000040 000000 00 X            0   0  0
121 # GNU: [ 6] merge         PROGBITS 0000000000000000 000040 000000 00 M            0   0  0
122 # GNU: [ 7] strings       PROGBITS 0000000000000000 000040 000000 00 S            0   0  0
123 # GNU: [ 8] infolink      PROGBITS 0000000000000000 000040 000000 00 I            0   0  0
124 # GNU: [ 9] linkorder     PROGBITS 0000000000000000 000040 000000 00 L            0   0  0
125 # GNU: [10] nonconforming PROGBITS 0000000000000000 000040 000000 00 O            0   0  0
126 # GNU: [11] group         PROGBITS 0000000000000000 000040 000000 00 G            0   0  0
127 # GNU: [12] tls           PROGBITS 0000000000000000 000040 000000 00 T            0   0  0
128 # GNU: [13] compressed    PROGBITS 0000000000000000 000040 000000 00 C            0   0  0
129 # GNU: [14] retain        PROGBITS 0000000000000000 000040 000000 00 R            0   0  0
130 # GNU: [15] exclude       PROGBITS 0000000000000000 000040 000000 00 E            0   0  0
131 # GNU: [16] unknown       PROGBITS 0000000000000000 000040 000000 00 x            0   0  0
133 --- !ELF
134 FileHeader:
135   Class: ELFCLASS64
136   Data:  ELFDATA2LSB
137   Type:  ET_REL
138   Flags: []
139 Sections:
140   - Name:  allflags
141     Type:  SHT_PROGBITS
142     Flags: [ SHF_WRITE, SHF_ALLOC, SHF_EXECINSTR, SHF_MERGE,
143             SHF_STRINGS, SHF_INFO_LINK, SHF_LINK_ORDER, SHF_OS_NONCONFORMING,
144             SHF_GROUP, SHF_TLS, SHF_COMPRESSED, SHF_GNU_RETAIN, SHF_EXCLUDE ]
145   - Name:  noflags
146     Type:  SHT_PROGBITS
147     Flags: [ ]
148   - Name:  write
149     Type:  SHT_PROGBITS
150     Flags: [ SHF_WRITE ]
151   - Name:  alloc
152     Type:  SHT_PROGBITS
153     Flags: [ SHF_ALLOC ]
154   - Name:  exec
155     Type:  SHT_PROGBITS
156     Flags: [ SHF_EXECINSTR ]
157   - Name:  merge
158     Type:  SHT_PROGBITS
159     Flags: [ SHF_MERGE ]
160   - Name:  strings
161     Type:  SHT_PROGBITS
162     Flags: [ SHF_STRINGS ]
163   - Name:  infolink
164     Type:  SHT_PROGBITS
165     Flags: [ SHF_INFO_LINK ]
166   - Name:  linkorder
167     Type:  SHT_PROGBITS
168     Flags: [ SHF_LINK_ORDER ]
169   - Name:  nonconforming
170     Type:  SHT_PROGBITS
171     Flags: [ SHF_OS_NONCONFORMING ]
172   - Name:  group
173     Type:  SHT_PROGBITS
174     Flags: [ SHF_GROUP ]
175   - Name:  tls
176     Type:  SHT_PROGBITS
177     Flags: [ SHF_TLS ]
178   - Name:  compressed
179     Type:  SHT_PROGBITS
180     Flags: [ SHF_COMPRESSED ]
181   - Name:  retain
182     Type:  SHT_PROGBITS
183     Flags: [ SHF_GNU_RETAIN ]
184   - Name:  exclude
185     Type:  SHT_PROGBITS
186     Flags: [ SHF_EXCLUDE ]
187   - Name:  unknown
188     Type:  SHT_PROGBITS
189     ShFlags: 0x000f0000