xref: /llvm-project/lld/test/wasm/locals-duplicate.test (revision 0807bc7e07f0430bd5b048d5c08f09442aab3b7d)
1; RUN: llc -mcpu=mvp -filetype=obj %p/Inputs/locals-duplicate1.ll -o %t1.o
2; RUN: llc -mcpu=mvp -filetype=obj %p/Inputs/locals-duplicate2.ll -o %t2.o
3; RUN: wasm-ld --export-dynamic --no-entry -o %t.wasm %t1.o %t2.o
4; RUN: obj2yaml %t.wasm | FileCheck %s
5
6; CHECK:      --- !WASM
7; CHECK-NEXT: FileHeader:
8; CHECK-NEXT:   Version:         0x1
9; CHECK-NEXT: Sections:
10; CHECK-NEXT:   - Type:            TYPE
11; CHECK-NEXT:     Signatures:
12; CHECK-NEXT:       - Index:           0
13; CHECK-NEXT:         ParamTypes:      []
14; CHECK-NEXT:         ReturnTypes:
15; CHECK-NEXT:           - I32
16; CHECK-NEXT:   - Type:            FUNCTION
17; CHECK-NEXT:     FunctionTypes:   [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
18; CHECK-NEXT:                        0, 0 ]
19; CHECK-NEXT:   - Type:            TABLE
20; CHECK-NEXT:     Tables:
21; CHECK-NEXT:       - Index:           0
22; CHECK-NEXT:         ElemType:        FUNCREF
23; CHECK-NEXT:         Limits:
24; CHECK-NEXT:           Flags:           [ HAS_MAX ]
25; CHECK-NEXT:           Minimum:         0x7
26; CHECK-NEXT:           Maximum:         0x7
27; CHECK-NEXT:   - Type:            MEMORY
28; CHECK-NEXT:     Memories:
29; CHECK-NEXT:       - Minimum:         0x2
30; CHECK-NEXT:   - Type:            GLOBAL
31; CHECK-NEXT:     Globals:
32; CHECK-NEXT:       - Index:           0
33; CHECK-NEXT:         Type:            I32
34; CHECK-NEXT:         Mutable:         true
35; CHECK-NEXT:         InitExpr:
36; CHECK-NEXT:           Opcode:          I32_CONST
37; CHECK-NEXT:           Value:           66592
38; CHECK-NEXT:       - Index:           1
39; CHECK-NEXT:         Type:            I32
40; CHECK-NEXT:         Mutable:         false
41; CHECK-NEXT:         InitExpr:
42; CHECK-NEXT:           Opcode:          I32_CONST
43; CHECK-NEXT:           Value:           1028
44; CHECK-NEXT:       - Index:           2
45; CHECK-NEXT:         Type:            I32
46; CHECK-NEXT:         Mutable:         false
47; CHECK-NEXT:         InitExpr:
48; CHECK-NEXT:           Opcode:          I32_CONST
49; CHECK-NEXT:           Value:           1036
50; CHECK-NEXT:   - Type:            EXPORT
51; CHECK-NEXT:     Exports:
52; CHECK-NEXT:       - Name:            memory
53; CHECK-NEXT:         Kind:            MEMORY
54; CHECK-NEXT:         Index:           0
55; CHECK-NEXT:       - Name:            colliding_func2
56; CHECK-NEXT:         Kind:            FUNCTION
57; CHECK-NEXT:         Index:           1
58; CHECK-NEXT:       - Name:            get_global1A
59; CHECK-NEXT:         Kind:            FUNCTION
60; CHECK-NEXT:         Index:           3
61; CHECK-NEXT:       - Name:            get_global2A
62; CHECK-NEXT:         Kind:            FUNCTION
63; CHECK-NEXT:         Index:           4
64; CHECK-NEXT:       - Name:            colliding_global2
65; CHECK-NEXT:         Kind:            GLOBAL
66; CHECK-NEXT:         Index:           1
67; CHECK-NEXT:       - Name:            get_global3A
68; CHECK-NEXT:         Kind:            FUNCTION
69; CHECK-NEXT:         Index:           5
70; CHECK-NEXT:       - Name:            get_func1A
71; CHECK-NEXT:         Kind:            FUNCTION
72; CHECK-NEXT:         Index:           6
73; CHECK-NEXT:       - Name:            get_func2A
74; CHECK-NEXT:         Kind:            FUNCTION
75; CHECK-NEXT:         Index:           7
76; CHECK-NEXT:       - Name:            get_func3A
77; CHECK-NEXT:         Kind:            FUNCTION
78; CHECK-NEXT:         Index:           8
79; CHECK-NEXT:       - Name:            colliding_func1
80; CHECK-NEXT:         Kind:            FUNCTION
81; CHECK-NEXT:         Index:           9
82; CHECK-NEXT:       - Name:            get_global1B
83; CHECK-NEXT:         Kind:            FUNCTION
84; CHECK-NEXT:         Index:           12
85; CHECK-NEXT:       - Name:            colliding_global1
86; CHECK-NEXT:         Kind:            GLOBAL
87; CHECK-NEXT:         Index:           2
88; CHECK-NEXT:       - Name:            get_global2B
89; CHECK-NEXT:         Kind:            FUNCTION
90; CHECK-NEXT:         Index:           13
91; CHECK-NEXT:       - Name:            get_global3B
92; CHECK-NEXT:         Kind:            FUNCTION
93; CHECK-NEXT:         Index:           14
94; CHECK-NEXT:       - Name:            get_func1B
95; CHECK-NEXT:         Kind:            FUNCTION
96; CHECK-NEXT:         Index:           15
97; CHECK-NEXT:       - Name:            get_func2B
98; CHECK-NEXT:         Kind:            FUNCTION
99; CHECK-NEXT:         Index:           16
100; CHECK-NEXT:       - Name:            get_func3B
101; CHECK-NEXT:         Kind:            FUNCTION
102; CHECK-NEXT:         Index:           17
103; CHECK-NEXT:   - Type:            ELEM
104; CHECK-NEXT:     Segments:
105; CHECK-NEXT:       - Offset:
106; CHECK-NEXT:           Opcode:          I32_CONST
107; CHECK-NEXT:           Value:           1
108; CHECK-NEXT:         Functions:       [ 0, 1, 2, 9, 10, 11 ]
109; CHECK-NEXT:   - Type:            CODE
110; CHECK-NEXT:     Functions:
111; CHECK-NEXT:       - Index:           0
112; CHECK-NEXT:         Locals:
113; CHECK-NEXT:         Body:            41020B
114; CHECK-NEXT:       - Index:           1
115; CHECK-NEXT:         Locals:
116; CHECK-NEXT:         Body:            41020B
117; CHECK-NEXT:       - Index:           2
118; CHECK-NEXT:         Locals:
119; CHECK-NEXT:         Body:            41020B
120; CHECK-NEXT:       - Index:           3
121; CHECK-NEXT:         Locals:
122; CHECK-NEXT:         Body:            4180888080000B
123; CHECK-NEXT:       - Index:           4
124; CHECK-NEXT:         Locals:
125; CHECK-NEXT:         Body:            4184888080000B
126; CHECK-NEXT:       - Index:           5
127; CHECK-NEXT:         Locals:
128; CHECK-NEXT:         Body:            4188888080000B
129; CHECK-NEXT:       - Index:           6
130; CHECK-NEXT:         Locals:
131; CHECK-NEXT:         Body:            4181808080000B
132; CHECK-NEXT:       - Index:           7
133; CHECK-NEXT:         Locals:
134; CHECK-NEXT:         Body:            4182808080000B
135; CHECK-NEXT:       - Index:           8
136; CHECK-NEXT:         Locals:
137; CHECK-NEXT:         Body:            4183808080000B
138; CHECK-NEXT:       - Index:           9
139; CHECK-NEXT:         Locals:
140; CHECK-NEXT:         Body:            41020B
141; CHECK-NEXT:       - Index:           10
142; CHECK-NEXT:         Locals:
143; CHECK-NEXT:         Body:            41020B
144; CHECK-NEXT:       - Index:           11
145; CHECK-NEXT:         Locals:
146; CHECK-NEXT:         Body:            41020B
147; CHECK-NEXT:       - Index:           12
148; CHECK-NEXT:         Locals:
149; CHECK-NEXT:         Body:            418C888080000B
150; CHECK-NEXT:       - Index:           13
151; CHECK-NEXT:         Locals:
152; CHECK-NEXT:         Body:            4190888080000B
153; CHECK-NEXT:       - Index:           14
154; CHECK-NEXT:         Locals:
155; CHECK-NEXT:         Body:            4194888080000B
156; CHECK-NEXT:       - Index:           15
157; CHECK-NEXT:         Locals:
158; CHECK-NEXT:         Body:            4184808080000B
159; CHECK-NEXT:       - Index:           16
160; CHECK-NEXT:         Locals:
161; CHECK-NEXT:         Body:            4185808080000B
162; CHECK-NEXT:       - Index:           17
163; CHECK-NEXT:         Locals:
164; CHECK-NEXT:         Body:            4186808080000B
165; CHECK-NEXT:   - Type:            DATA
166; CHECK-NEXT:     Segments:
167; CHECK-NEXT:       - SectionOffset:   7
168; CHECK-NEXT:         InitFlags:       0
169; CHECK-NEXT:         Offset:
170; CHECK-NEXT:           Opcode:          I32_CONST
171; CHECK-NEXT:           Value:           1024
172; CHECK-NEXT:         Content:         '010000000100000001000000010000000100000001000000'
173; CHECK-NEXT:   - Type:            CUSTOM
174; CHECK-NEXT:     Name:            name
175; CHECK-NEXT:     FunctionNames:
176; CHECK-NEXT:       - Index:           0
177; CHECK-NEXT:         Name:            colliding_func1
178; CHECK-NEXT:       - Index:           1
179; CHECK-NEXT:         Name:            colliding_func2
180; CHECK-NEXT:       - Index:           2
181; CHECK-NEXT:         Name:            colliding_func3
182; CHECK-NEXT:       - Index:           3
183; CHECK-NEXT:         Name:            get_global1A
184; CHECK-NEXT:       - Index:           4
185; CHECK-NEXT:         Name:            get_global2A
186; CHECK-NEXT:       - Index:           5
187; CHECK-NEXT:         Name:            get_global3A
188; CHECK-NEXT:       - Index:           6
189; CHECK-NEXT:         Name:            get_func1A
190; CHECK-NEXT:       - Index:           7
191; CHECK-NEXT:         Name:            get_func2A
192; CHECK-NEXT:       - Index:           8
193; CHECK-NEXT:         Name:            get_func3A
194; CHECK-NEXT:       - Index:           9
195; CHECK-NEXT:         Name:            colliding_func1
196; CHECK-NEXT:       - Index:           10
197; CHECK-NEXT:         Name:            colliding_func2
198; CHECK-NEXT:       - Index:           11
199; CHECK-NEXT:         Name:            colliding_func3
200; CHECK-NEXT:       - Index:           12
201; CHECK-NEXT:         Name:            get_global1B
202; CHECK-NEXT:       - Index:           13
203; CHECK-NEXT:         Name:            get_global2B
204; CHECK-NEXT:       - Index:           14
205; CHECK-NEXT:         Name:            get_global3B
206; CHECK-NEXT:       - Index:           15
207; CHECK-NEXT:         Name:            get_func1B
208; CHECK-NEXT:       - Index:           16
209; CHECK-NEXT:         Name:            get_func2B
210; CHECK-NEXT:       - Index:           17
211; CHECK-NEXT:         Name:            get_func3B
212; CHECK-NEXT:     GlobalNames:
213; CHECK-NEXT:       - Index:           0
214; CHECK-NEXT:         Name:            __stack_pointer
215; CHECK-NEXT:     DataSegmentNames:
216; CHECK-NEXT:       - Index:           0
217; CHECK-NEXT:         Name:            .data
218; CHECK-NEXT: ...
219
220
221; RUN: wasm-ld -r --no-entry -o %t.reloc.wasm %t1.o %t2.o
222; RUN: obj2yaml %t.reloc.wasm | FileCheck -check-prefix=RELOC %s
223
224; RELOC:      --- !WASM
225; RELOC-NEXT: FileHeader:
226; RELOC-NEXT:   Version:         0x1
227; RELOC-NEXT: Sections:
228; RELOC-NEXT:   - Type:            TYPE
229; RELOC-NEXT:     Signatures:
230; RELOC-NEXT:       - Index:           0
231; RELOC-NEXT:         ParamTypes:      []
232; RELOC-NEXT:         ReturnTypes:
233; RELOC-NEXT:           - I32
234; RELOC-NEXT:  - Type:            IMPORT
235; RELOC-NEXT:    Imports:
236; RELOC-NEXT:      - Module:          env
237; RELOC-NEXT:        Field:           __indirect_function_table
238; RELOC-NEXT:        Kind:            TABLE
239; RELOC-NEXT:        Table:
240; RELOC-NEXT:          Index:           0
241; RELOC-NEXT:          ElemType:        FUNCREF
242; RELOC-NEXT:          Limits:
243; RELOC-NEXT:            Minimum:         0x7
244; RELOC-NEXT:   - Type:            FUNCTION
245; RELOC-NEXT:     FunctionTypes:   [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
246; RELOC-NEXT:                        0, 0 ]
247; RELOC-NEXT:   - Type:            MEMORY
248; RELOC-NEXT:     Memories:
249; RELOC-NEXT:       - Minimum:         0x1
250; RELOC-NEXT:   - Type:            ELEM
251; RELOC-NEXT:     Segments:
252; RELOC-NEXT:       - Offset:
253; RELOC-NEXT:           Opcode:          I32_CONST
254; RELOC-NEXT:           Value:           1
255; RELOC-NEXT:         Functions:       [ 0, 1, 2, 9, 10, 11 ]
256; RELOC-NEXT:   - Type:            CODE
257; RELOC-NEXT:     Relocations:
258; RELOC-NEXT:       - Type:            R_WASM_MEMORY_ADDR_SLEB
259; RELOC-NEXT:         Index:           19
260; RELOC-NEXT:         Offset:          0x13
261; RELOC-NEXT:       - Type:            R_WASM_MEMORY_ADDR_SLEB
262; RELOC-NEXT:         Index:           3
263; RELOC-NEXT:         Offset:          0x1C
264; RELOC-NEXT:       - Type:            R_WASM_MEMORY_ADDR_SLEB
265; RELOC-NEXT:         Index:           20
266; RELOC-NEXT:         Offset:          0x25
267; RELOC-NEXT:       - Type:            R_WASM_TABLE_INDEX_SLEB
268; RELOC-NEXT:         Index:           17
269; RELOC-NEXT:         Offset:          0x2E
270; RELOC-NEXT:       - Type:            R_WASM_TABLE_INDEX_SLEB
271; RELOC-NEXT:         Index:           0
272; RELOC-NEXT:         Offset:          0x37
273; RELOC-NEXT:       - Type:            R_WASM_TABLE_INDEX_SLEB
274; RELOC-NEXT:         Index:           18
275; RELOC-NEXT:         Offset:          0x40
276; RELOC-NEXT:       - Type:            R_WASM_MEMORY_ADDR_SLEB
277; RELOC-NEXT:         Index:           11
278; RELOC-NEXT:         Offset:          0x58
279; RELOC-NEXT:       - Type:            R_WASM_MEMORY_ADDR_SLEB
280; RELOC-NEXT:         Index:           23
281; RELOC-NEXT:         Offset:          0x61
282; RELOC-NEXT:       - Type:            R_WASM_MEMORY_ADDR_SLEB
283; RELOC-NEXT:         Index:           24
284; RELOC-NEXT:         Offset:          0x6A
285; RELOC-NEXT:       - Type:            R_WASM_TABLE_INDEX_SLEB
286; RELOC-NEXT:         Index:           9
287; RELOC-NEXT:         Offset:          0x73
288; RELOC-NEXT:       - Type:            R_WASM_TABLE_INDEX_SLEB
289; RELOC-NEXT:         Index:           21
290; RELOC-NEXT:         Offset:          0x7C
291; RELOC-NEXT:       - Type:            R_WASM_TABLE_INDEX_SLEB
292; RELOC-NEXT:         Index:           22
293; RELOC-NEXT:         Offset:          0x85
294; RELOC-NEXT:     Functions:
295; RELOC-NEXT:       - Index:           0
296; RELOC-NEXT:         Locals:
297; RELOC-NEXT:         Body:            41020B
298; RELOC-NEXT:       - Index:           1
299; RELOC-NEXT:         Locals:
300; RELOC-NEXT:         Body:            41020B
301; RELOC-NEXT:       - Index:           2
302; RELOC-NEXT:         Locals:
303; RELOC-NEXT:         Body:            41020B
304; RELOC-NEXT:       - Index:           3
305; RELOC-NEXT:         Locals:
306; RELOC-NEXT:         Body:            4180808080000B
307; RELOC-NEXT:       - Index:           4
308; RELOC-NEXT:         Locals:
309; RELOC-NEXT:         Body:            4188808080000B
310; RELOC-NEXT:       - Index:           5
311; RELOC-NEXT:         Locals:
312; RELOC-NEXT:         Body:            4190808080000B
313; RELOC-NEXT:       - Index:           6
314; RELOC-NEXT:         Locals:
315; RELOC-NEXT:         Body:            4181808080000B
316; RELOC-NEXT:       - Index:           7
317; RELOC-NEXT:         Locals:
318; RELOC-NEXT:         Body:            4182808080000B
319; RELOC-NEXT:       - Index:           8
320; RELOC-NEXT:         Locals:
321; RELOC-NEXT:         Body:            4183808080000B
322; RELOC-NEXT:       - Index:           9
323; RELOC-NEXT:         Locals:
324; RELOC-NEXT:         Body:            41020B
325; RELOC-NEXT:       - Index:           10
326; RELOC-NEXT:         Locals:
327; RELOC-NEXT:         Body:            41020B
328; RELOC-NEXT:       - Index:           11
329; RELOC-NEXT:         Locals:
330; RELOC-NEXT:         Body:            41020B
331; RELOC-NEXT:       - Index:           12
332; RELOC-NEXT:         Locals:
333; RELOC-NEXT:         Body:            4184808080000B
334; RELOC-NEXT:       - Index:           13
335; RELOC-NEXT:         Locals:
336; RELOC-NEXT:         Body:            418C808080000B
337; RELOC-NEXT:       - Index:           14
338; RELOC-NEXT:         Locals:
339; RELOC-NEXT:         Body:            4194808080000B
340; RELOC-NEXT:       - Index:           15
341; RELOC-NEXT:         Locals:
342; RELOC-NEXT:         Body:            4184808080000B
343; RELOC-NEXT:       - Index:           16
344; RELOC-NEXT:         Locals:
345; RELOC-NEXT:         Body:            4185808080000B
346; RELOC-NEXT:       - Index:           17
347; RELOC-NEXT:         Locals:
348; RELOC-NEXT:         Body:            4186808080000B
349; RELOC-NEXT:   - Type:            DATA
350; RELOC-NEXT:     Segments:
351; RELOC-NEXT:       - SectionOffset:   6
352; RELOC-NEXT:         InitFlags:       0
353; RELOC-NEXT:         Offset:
354; RELOC-NEXT:           Opcode:          I32_CONST
355; RELOC-NEXT:           Value:           0
356; RELOC-NEXT:         Content:         '0100000001000000'
357; RELOC-NEXT:       - SectionOffset:   19
358; RELOC-NEXT:         InitFlags:       0
359; RELOC-NEXT:         Offset:
360; RELOC-NEXT:           Opcode:          I32_CONST
361; RELOC-NEXT:           Value:           8
362; RELOC-NEXT:         Content:         '0100000001000000'
363; RELOC-NEXT:       - SectionOffset:   32
364; RELOC-NEXT:         InitFlags:       0
365; RELOC-NEXT:         Offset:
366; RELOC-NEXT:           Opcode:          I32_CONST
367; RELOC-NEXT:           Value:           16
368; RELOC-NEXT:         Content:         '0100000001000000'
369; RELOC-NEXT:   - Type:            CUSTOM
370; RELOC-NEXT:     Name:            linking
371; RELOC-NEXT:     Version:         2
372; RELOC-NEXT:     SymbolTable:
373; RELOC-NEXT:       - Index:           0
374; RELOC-NEXT:         Kind:            FUNCTION
375; RELOC-NEXT:         Name:            colliding_func2
376; RELOC-NEXT:         Flags:           [  ]
377; RELOC-NEXT:         Function:        1
378; RELOC-NEXT:       - Index:           1
379; RELOC-NEXT:         Kind:            FUNCTION
380; RELOC-NEXT:         Name:            get_global1A
381; RELOC-NEXT:         Flags:           [  ]
382; RELOC-NEXT:         Function:        3
383; RELOC-NEXT:       - Index:           2
384; RELOC-NEXT:         Kind:            FUNCTION
385; RELOC-NEXT:         Name:            get_global2A
386; RELOC-NEXT:         Flags:           [  ]
387; RELOC-NEXT:         Function:        4
388; RELOC-NEXT:       - Index:           3
389; RELOC-NEXT:         Kind:            DATA
390; RELOC-NEXT:         Name:            colliding_global2
391; RELOC-NEXT:         Flags:           [  ]
392; RELOC-NEXT:         Segment:         1
393; RELOC-NEXT:         Size:            4
394; RELOC-NEXT:       - Index:           4
395; RELOC-NEXT:         Kind:            FUNCTION
396; RELOC-NEXT:         Name:            get_global3A
397; RELOC-NEXT:         Flags:           [  ]
398; RELOC-NEXT:         Function:        5
399; RELOC-NEXT:       - Index:           5
400; RELOC-NEXT:         Kind:            FUNCTION
401; RELOC-NEXT:         Name:            get_func1A
402; RELOC-NEXT:         Flags:           [  ]
403; RELOC-NEXT:         Function:        6
404; RELOC-NEXT:       - Index:           6
405; RELOC-NEXT:         Kind:            FUNCTION
406; RELOC-NEXT:         Name:            get_func2A
407; RELOC-NEXT:         Flags:           [  ]
408; RELOC-NEXT:         Function:        7
409; RELOC-NEXT:       - Index:           7
410; RELOC-NEXT:         Kind:            FUNCTION
411; RELOC-NEXT:         Name:            get_func3A
412; RELOC-NEXT:         Flags:           [  ]
413; RELOC-NEXT:         Function:        8
414; RELOC-NEXT:       - Index:           8
415; RELOC-NEXT:         Kind:            TABLE
416; RELOC-NEXT:         Name:            __indirect_function_table
417; RELOC-NEXT:         Flags:           [ UNDEFINED, NO_STRIP ]
418; RELOC-NEXT:         Table:           0
419; RELOC-NEXT:       - Index:           9
420; RELOC-NEXT:         Kind:            FUNCTION
421; RELOC-NEXT:         Name:            colliding_func1
422; RELOC-NEXT:         Flags:           [  ]
423; RELOC-NEXT:         Function:        9
424; RELOC-NEXT:       - Index:           10
425; RELOC-NEXT:         Kind:            FUNCTION
426; RELOC-NEXT:         Name:            get_global1B
427; RELOC-NEXT:         Flags:           [  ]
428; RELOC-NEXT:         Function:        12
429; RELOC-NEXT:       - Index:           11
430; RELOC-NEXT:         Kind:            DATA
431; RELOC-NEXT:         Name:            colliding_global1
432; RELOC-NEXT:         Flags:           [  ]
433; RELOC-NEXT:         Segment:         0
434; RELOC-NEXT:         Offset:          4
435; RELOC-NEXT:         Size:            4
436; RELOC-NEXT:       - Index:           12
437; RELOC-NEXT:         Kind:            FUNCTION
438; RELOC-NEXT:         Name:            get_global2B
439; RELOC-NEXT:         Flags:           [  ]
440; RELOC-NEXT:         Function:        13
441; RELOC-NEXT:       - Index:           13
442; RELOC-NEXT:         Kind:            FUNCTION
443; RELOC-NEXT:         Name:            get_global3B
444; RELOC-NEXT:         Flags:           [  ]
445; RELOC-NEXT:         Function:        14
446; RELOC-NEXT:       - Index:           14
447; RELOC-NEXT:         Kind:            FUNCTION
448; RELOC-NEXT:         Name:            get_func1B
449; RELOC-NEXT:         Flags:           [  ]
450; RELOC-NEXT:         Function:        15
451; RELOC-NEXT:       - Index:           15
452; RELOC-NEXT:         Kind:            FUNCTION
453; RELOC-NEXT:         Name:            get_func2B
454; RELOC-NEXT:         Flags:           [  ]
455; RELOC-NEXT:         Function:        16
456; RELOC-NEXT:       - Index:           16
457; RELOC-NEXT:         Kind:            FUNCTION
458; RELOC-NEXT:         Name:            get_func3B
459; RELOC-NEXT:         Flags:           [  ]
460; RELOC-NEXT:         Function:        17
461; RELOC-NEXT:       - Index:           17
462; RELOC-NEXT:         Kind:            FUNCTION
463; RELOC-NEXT:         Name:            colliding_func1
464; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
465; RELOC-NEXT:         Function:        0
466; RELOC-NEXT:       - Index:           18
467; RELOC-NEXT:         Kind:            FUNCTION
468; RELOC-NEXT:         Name:            colliding_func3
469; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
470; RELOC-NEXT:         Function:        2
471; RELOC-NEXT:       - Index:           19
472; RELOC-NEXT:         Kind:            DATA
473; RELOC-NEXT:         Name:            colliding_global1
474; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
475; RELOC-NEXT:         Segment:         0
476; RELOC-NEXT:         Size:            4
477; RELOC-NEXT:       - Index:           20
478; RELOC-NEXT:         Kind:            DATA
479; RELOC-NEXT:         Name:            colliding_global3
480; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
481; RELOC-NEXT:         Segment:         2
482; RELOC-NEXT:         Size:            4
483; RELOC-NEXT:       - Index:           21
484; RELOC-NEXT:         Kind:            FUNCTION
485; RELOC-NEXT:         Name:            colliding_func2
486; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
487; RELOC-NEXT:         Function:        10
488; RELOC-NEXT:       - Index:           22
489; RELOC-NEXT:         Kind:            FUNCTION
490; RELOC-NEXT:         Name:            colliding_func3
491; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
492; RELOC-NEXT:         Function:        11
493; RELOC-NEXT:       - Index:           23
494; RELOC-NEXT:         Kind:            DATA
495; RELOC-NEXT:         Name:            colliding_global2
496; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
497; RELOC-NEXT:         Segment:         1
498; RELOC-NEXT:         Offset:          4
499; RELOC-NEXT:         Size:            4
500; RELOC-NEXT:       - Index:           24
501; RELOC-NEXT:         Kind:            DATA
502; RELOC-NEXT:         Name:            colliding_global3
503; RELOC-NEXT:         Flags:           [ BINDING_LOCAL ]
504; RELOC-NEXT:         Segment:         2
505; RELOC-NEXT:         Offset:          4
506; RELOC-NEXT:         Size:            4
507; RELOC-NEXT:     SegmentInfo:
508; RELOC-NEXT:       - Index:           0
509; RELOC-NEXT:         Name:            .data.colliding_global1
510; RELOC-NEXT:         Alignment:       2
511; RELOC-NEXT:         Flags:           [  ]
512; RELOC-NEXT:       - Index:           1
513; RELOC-NEXT:         Name:            .data.colliding_global2
514; RELOC-NEXT:         Alignment:       2
515; RELOC-NEXT:         Flags:           [  ]
516; RELOC-NEXT:       - Index:           2
517; RELOC-NEXT:         Name:            .data.colliding_global3
518; RELOC-NEXT:         Alignment:       2
519; RELOC-NEXT:         Flags:           [  ]
520; RELOC-NEXT:   - Type:            CUSTOM
521; RELOC-NEXT:     Name:            name
522; RELOC-NEXT:     FunctionNames:
523; RELOC-NEXT:       - Index:           0
524; RELOC-NEXT:         Name:            colliding_func1
525; RELOC-NEXT:       - Index:           1
526; RELOC-NEXT:         Name:            colliding_func2
527; RELOC-NEXT:       - Index:           2
528; RELOC-NEXT:         Name:            colliding_func3
529; RELOC-NEXT:       - Index:           3
530; RELOC-NEXT:         Name:            get_global1A
531; RELOC-NEXT:       - Index:           4
532; RELOC-NEXT:         Name:            get_global2A
533; RELOC-NEXT:       - Index:           5
534; RELOC-NEXT:         Name:            get_global3A
535; RELOC-NEXT:       - Index:           6
536; RELOC-NEXT:         Name:            get_func1A
537; RELOC-NEXT:       - Index:           7
538; RELOC-NEXT:         Name:            get_func2A
539; RELOC-NEXT:       - Index:           8
540; RELOC-NEXT:         Name:            get_func3A
541; RELOC-NEXT:       - Index:           9
542; RELOC-NEXT:         Name:            colliding_func1
543; RELOC-NEXT:       - Index:           10
544; RELOC-NEXT:         Name:            colliding_func2
545; RELOC-NEXT:       - Index:           11
546; RELOC-NEXT:         Name:            colliding_func3
547; RELOC-NEXT:       - Index:           12
548; RELOC-NEXT:         Name:            get_global1B
549; RELOC-NEXT:       - Index:           13
550; RELOC-NEXT:         Name:            get_global2B
551; RELOC-NEXT:       - Index:           14
552; RELOC-NEXT:         Name:            get_global3B
553; RELOC-NEXT:       - Index:           15
554; RELOC-NEXT:         Name:            get_func1B
555; RELOC-NEXT:       - Index:           16
556; RELOC-NEXT:         Name:            get_func2B
557; RELOC-NEXT:       - Index:           17
558; RELOC-NEXT:         Name:            get_func3B
559; RELOC-NEXT:     DataSegmentNames:
560; RELOC-NEXT:       - Index:           0
561; RELOC-NEXT:         Name:            .data.colliding_global1
562; RELOC-NEXT:       - Index:           1
563; RELOC-NEXT:         Name:            .data.colliding_global2
564; RELOC-NEXT:       - Index:           2
565; RELOC-NEXT:         Name:            .data.colliding_global3
566; RELOC-NEXT: ...
567