blob: 644031751332bca9ff9a9a95f1424105c6cdbd3e [file] [log] [blame]
Sam Clegg70683b22018-01-24 03:29:47 +00001; RUN: llc -filetype=obj %p/Inputs/hello.ll -o %t.hello.o
2; RUN: llc -filetype=obj %s -o %t.o
Sam Cleggc94d3932017-11-17 18:14:09 +00003; RUN: lld -flavor wasm -r -o %t.wasm %t.hello.o %t.o
4; RUN: obj2yaml %t.wasm | FileCheck %s
5
Sam Clegg70683b22018-01-24 03:29:47 +00006target triple = "wasm32-unknown-unknown-wasm"
7
Sam Cleggc94d3932017-11-17 18:14:09 +00008; Function Attrs: nounwind
9define hidden i32 @my_func() local_unnamed_addr {
10entry:
11 %call = tail call i32 @foo_import()
Sam Clegg729a8642018-01-19 20:56:20 +000012 %call2 = tail call i32 @bar_import()
Sam Cleggc94d3932017-11-17 18:14:09 +000013 ret i32 1
14}
15
16declare i32 @foo_import() local_unnamed_addr
Sam Clegg729a8642018-01-19 20:56:20 +000017declare extern_weak i32 @bar_import() local_unnamed_addr
Sam Cleggc94d3932017-11-17 18:14:09 +000018@data_import = external global i64
19
20@func_addr1 = hidden global i32()* @my_func, align 4
21@func_addr2 = hidden global i32()* @foo_import, align 4
Sam Clegg729a8642018-01-19 20:56:20 +000022@func_addr3 = hidden global i32()* @bar_import, align 4
Sam Cleggc94d3932017-11-17 18:14:09 +000023@data_addr1 = hidden global i64* @data_import, align 8
24
Sam Clegge0f6fcd2018-01-12 22:25:17 +000025$func_comdat = comdat any
26@data_comdat = weak_odr constant [3 x i8] c"abc", comdat($func_comdat)
27define linkonce_odr i32 @func_comdat() comdat {
28entry:
29 ret i32 ptrtoint ([3 x i8]* @data_comdat to i32)
30}
31
Sam Cleggc94d3932017-11-17 18:14:09 +000032; CHECK: --- !WASM
Rui Ueyama1ce416c2017-12-12 20:00:30 +000033; CHECK-NEXT: FileHeader:
Sam Cleggc94d3932017-11-17 18:14:09 +000034; CHECK-NEXT: Version: 0x00000001
Rui Ueyama1ce416c2017-12-12 20:00:30 +000035; CHECK-NEXT: Sections:
Sam Cleggc94d3932017-11-17 18:14:09 +000036; CHECK-NEXT: - Type: TYPE
Rui Ueyama1ce416c2017-12-12 20:00:30 +000037; CHECK-NEXT: Signatures:
Sam Cleggc94d3932017-11-17 18:14:09 +000038; CHECK-NEXT: - Index: 0
39; CHECK-NEXT: ReturnType: NORESULT
Rui Ueyama1ce416c2017-12-12 20:00:30 +000040; CHECK-NEXT: ParamTypes:
Sam Cleggc94d3932017-11-17 18:14:09 +000041; CHECK-NEXT: - Index: 1
42; CHECK-NEXT: ReturnType: NORESULT
Rui Ueyama1ce416c2017-12-12 20:00:30 +000043; CHECK-NEXT: ParamTypes:
Sam Cleggc94d3932017-11-17 18:14:09 +000044; CHECK-NEXT: - I32
45; CHECK-NEXT: - Index: 2
46; CHECK-NEXT: ReturnType: I32
Rui Ueyama1ce416c2017-12-12 20:00:30 +000047; CHECK-NEXT: ParamTypes:
Sam Cleggc94d3932017-11-17 18:14:09 +000048; CHECK-NEXT: - Type: IMPORT
Rui Ueyama1ce416c2017-12-12 20:00:30 +000049; CHECK-NEXT: Imports:
Sam Cleggc94d3932017-11-17 18:14:09 +000050; CHECK-NEXT: - Module: env
51; CHECK-NEXT: Field: puts
52; CHECK-NEXT: Kind: FUNCTION
53; CHECK-NEXT: SigIndex: 1
54; CHECK-NEXT: - Module: env
55; CHECK-NEXT: Field: foo_import
56; CHECK-NEXT: Kind: FUNCTION
57; CHECK-NEXT: SigIndex: 2
58; CHECK-NEXT: - Module: env
Sam Clegg729a8642018-01-19 20:56:20 +000059; CHECK-NEXT: Field: bar_import
60; CHECK-NEXT: Kind: FUNCTION
61; CHECK-NEXT: SigIndex: 2
62; CHECK-NEXT: - Module: env
Sam Cleggc94d3932017-11-17 18:14:09 +000063; CHECK-NEXT: Field: data_import
64; CHECK-NEXT: Kind: GLOBAL
65; CHECK-NEXT: GlobalType: I32
66; CHECK-NEXT: GlobalMutable: false
67; CHECK-NEXT: - Type: FUNCTION
Sam Clegge0f6fcd2018-01-12 22:25:17 +000068; CHECK-NEXT: FunctionTypes: [ 0, 2, 2 ]
Sam Cleggc94d3932017-11-17 18:14:09 +000069; CHECK-NEXT: - Type: TABLE
Rui Ueyama1ce416c2017-12-12 20:00:30 +000070; CHECK-NEXT: Tables:
Sam Cleggc94d3932017-11-17 18:14:09 +000071; CHECK-NEXT: - ElemType: ANYFUNC
Rui Ueyama1ce416c2017-12-12 20:00:30 +000072; CHECK-NEXT: Limits:
Sam Clegg30b013b2017-12-14 00:34:25 +000073; CHECK-NEXT: Flags: [ HAS_MAX ]
Sam Clegg48bbd632018-01-24 21:37:30 +000074; CHECK-NEXT: Initial: 0x00000004
75; CHECK-NEXT: Maximum: 0x00000004
Sam Cleggc94d3932017-11-17 18:14:09 +000076; CHECK-NEXT: - Type: MEMORY
Rui Ueyama1ce416c2017-12-12 20:00:30 +000077; CHECK-NEXT: Memories:
Sam Cleggc94d3932017-11-17 18:14:09 +000078; CHECK-NEXT: - Initial: 0x00000001
79; CHECK-NEXT: - Type: GLOBAL
Rui Ueyama1ce416c2017-12-12 20:00:30 +000080; CHECK-NEXT: Globals:
Sam Cleggf50534b2018-01-09 21:47:36 +000081; CHECK-NEXT: - Index: 1
82; CHECK-NEXT: Type: I32
Sam Cleggc94d3932017-11-17 18:14:09 +000083; CHECK-NEXT: Mutable: false
Rui Ueyama1ce416c2017-12-12 20:00:30 +000084; CHECK-NEXT: InitExpr:
Sam Cleggc94d3932017-11-17 18:14:09 +000085; CHECK-NEXT: Opcode: I32_CONST
86; CHECK-NEXT: Value: 0
Sam Cleggf50534b2018-01-09 21:47:36 +000087; CHECK-NEXT: - Index: 2
88; CHECK-NEXT: Type: I32
Sam Cleggc94d3932017-11-17 18:14:09 +000089; CHECK-NEXT: Mutable: false
Rui Ueyama1ce416c2017-12-12 20:00:30 +000090; CHECK-NEXT: InitExpr:
Sam Cleggc94d3932017-11-17 18:14:09 +000091; CHECK-NEXT: Opcode: I32_CONST
Sam Clegg729a8642018-01-19 20:56:20 +000092; CHECK-NEXT: Value: 28
Sam Cleggf50534b2018-01-09 21:47:36 +000093; CHECK-NEXT: - Index: 3
94; CHECK-NEXT: Type: I32
Sam Cleggc94d3932017-11-17 18:14:09 +000095; CHECK-NEXT: Mutable: false
Rui Ueyama1ce416c2017-12-12 20:00:30 +000096; CHECK-NEXT: InitExpr:
Sam Cleggc94d3932017-11-17 18:14:09 +000097; CHECK-NEXT: Opcode: I32_CONST
Sam Clegge0f6fcd2018-01-12 22:25:17 +000098; CHECK-NEXT: Value: 8
Sam Cleggf50534b2018-01-09 21:47:36 +000099; CHECK-NEXT: - Index: 4
100; CHECK-NEXT: Type: I32
Sam Cleggc94d3932017-11-17 18:14:09 +0000101; CHECK-NEXT: Mutable: false
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000102; CHECK-NEXT: InitExpr:
Sam Cleggc94d3932017-11-17 18:14:09 +0000103; CHECK-NEXT: Opcode: I32_CONST
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000104; CHECK-NEXT: Value: 12
105; CHECK-NEXT: - Index: 5
106; CHECK-NEXT: Type: I32
107; CHECK-NEXT: Mutable: false
108; CHECK-NEXT: InitExpr:
109; CHECK-NEXT: Opcode: I32_CONST
Sam Cleggc94d3932017-11-17 18:14:09 +0000110; CHECK-NEXT: Value: 16
Sam Clegg729a8642018-01-19 20:56:20 +0000111; CHECK-NEXT: - Index: 6
112; CHECK-NEXT: Type: I32
113; CHECK-NEXT: Mutable: false
114; CHECK-NEXT: InitExpr:
115; CHECK-NEXT: Opcode: I32_CONST
116; CHECK-NEXT: Value: 24
Sam Cleggc94d3932017-11-17 18:14:09 +0000117; CHECK-NEXT: - Type: EXPORT
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000118; CHECK-NEXT: Exports:
Sam Cleggc94d3932017-11-17 18:14:09 +0000119; CHECK-NEXT: - Name: hello
120; CHECK-NEXT: Kind: FUNCTION
Sam Clegg729a8642018-01-19 20:56:20 +0000121; CHECK-NEXT: Index: 3
Sam Cleggc94d3932017-11-17 18:14:09 +0000122; CHECK-NEXT: - Name: my_func
123; CHECK-NEXT: Kind: FUNCTION
Sam Clegg729a8642018-01-19 20:56:20 +0000124; CHECK-NEXT: Index: 4
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000125; CHECK-NEXT: - Name: func_comdat
126; CHECK-NEXT: Kind: FUNCTION
Sam Clegg729a8642018-01-19 20:56:20 +0000127; CHECK-NEXT: Index: 5
Sam Clegg74fe0ba2017-12-07 01:51:24 +0000128; CHECK-NEXT: - Name: hello_str
129; CHECK-NEXT: Kind: GLOBAL
130; CHECK-NEXT: Index: 1
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000131; CHECK-NEXT: - Name: data_comdat
Sam Clegg74fe0ba2017-12-07 01:51:24 +0000132; CHECK-NEXT: Kind: GLOBAL
133; CHECK-NEXT: Index: 2
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000134; CHECK-NEXT: - Name: func_addr1
Sam Clegg74fe0ba2017-12-07 01:51:24 +0000135; CHECK-NEXT: Kind: GLOBAL
136; CHECK-NEXT: Index: 3
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000137; CHECK-NEXT: - Name: func_addr2
Sam Clegg74fe0ba2017-12-07 01:51:24 +0000138; CHECK-NEXT: Kind: GLOBAL
139; CHECK-NEXT: Index: 4
Sam Clegg729a8642018-01-19 20:56:20 +0000140; CHECK-NEXT: - Name: func_addr3
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000141; CHECK-NEXT: Kind: GLOBAL
142; CHECK-NEXT: Index: 5
Sam Clegg729a8642018-01-19 20:56:20 +0000143; CHECK-NEXT: - Name: data_addr1
144; CHECK-NEXT: Kind: GLOBAL
145; CHECK-NEXT: Index: 6
Sam Cleggc94d3932017-11-17 18:14:09 +0000146; CHECK-NEXT: - Type: ELEM
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000147; CHECK-NEXT: Segments:
148; CHECK-NEXT: - Offset:
Sam Cleggc94d3932017-11-17 18:14:09 +0000149; CHECK-NEXT: Opcode: I32_CONST
Sam Clegg48bbd632018-01-24 21:37:30 +0000150; CHECK-NEXT: Value: 1
Sam Clegg729a8642018-01-19 20:56:20 +0000151; CHECK-NEXT: Functions: [ 4, 1, 2 ]
Sam Cleggc94d3932017-11-17 18:14:09 +0000152; CHECK-NEXT: - Type: CODE
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000153; CHECK-NEXT: Relocations:
Sam Cleggc94d3932017-11-17 18:14:09 +0000154; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB
155; CHECK-NEXT: Index: 1
156; CHECK-NEXT: Offset: 0x00000004
157; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
158; CHECK-NEXT: Index: 0
159; CHECK-NEXT: Offset: 0x0000000A
160; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
161; CHECK-NEXT: Index: 1
162; CHECK-NEXT: Offset: 0x00000013
Sam Clegg729a8642018-01-19 20:56:20 +0000163; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
164; CHECK-NEXT: Index: 2
165; CHECK-NEXT: Offset: 0x0000001A
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000166; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB
167; CHECK-NEXT: Index: 2
Sam Clegg729a8642018-01-19 20:56:20 +0000168; CHECK-NEXT: Offset: 0x00000026
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000169; CHECK-NEXT: Functions:
Sam Cleggf50534b2018-01-09 21:47:36 +0000170; CHECK-NEXT: - Index: 3
171; CHECK-NEXT: Locals:
Sam Clegg729a8642018-01-19 20:56:20 +0000172; CHECK-NEXT: Body: 4180808080001080808080000B
173; CHECK-NEXT: - Index: 4
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000174; CHECK-NEXT: Locals:
Sam Clegg729a8642018-01-19 20:56:20 +0000175; CHECK-NEXT: Body: 1081808080001A1082808080001A41010B
176; CHECK-NEXT: - Index: 5
177; CHECK-NEXT: Locals:
178; CHECK-NEXT: Body: 419C808080000B
Sam Cleggc94d3932017-11-17 18:14:09 +0000179; CHECK-NEXT: - Type: DATA
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000180; CHECK-NEXT: Relocations:
Sam Cleggc94d3932017-11-17 18:14:09 +0000181; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32
Sam Cleggab604a92018-01-23 01:25:56 +0000182; CHECK-NEXT: Index: 4
Sam Cleggc94d3932017-11-17 18:14:09 +0000183; CHECK-NEXT: Offset: 0x00000012
184; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32
185; CHECK-NEXT: Index: 1
186; CHECK-NEXT: Offset: 0x0000001B
Sam Clegg729a8642018-01-19 20:56:20 +0000187; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32
188; CHECK-NEXT: Index: 2
189; CHECK-NEXT: Offset: 0x00000024
Sam Cleggc94d3932017-11-17 18:14:09 +0000190; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32
191; CHECK-NEXT: Index: 0
Sam Clegg729a8642018-01-19 20:56:20 +0000192; CHECK-NEXT: Offset: 0x0000002D
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000193; CHECK-NEXT: Segments:
Sam Cleggc94d3932017-11-17 18:14:09 +0000194; CHECK-NEXT: - SectionOffset: 6
195; CHECK-NEXT: MemoryIndex: 0
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000196; CHECK-NEXT: Offset:
Sam Cleggc94d3932017-11-17 18:14:09 +0000197; CHECK-NEXT: Opcode: I32_CONST
198; CHECK-NEXT: Value: 0
199; CHECK-NEXT: Content: 68656C6C6F0A00
200; CHECK-NEXT: - SectionOffset: 18
201; CHECK-NEXT: MemoryIndex: 0
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000202; CHECK-NEXT: Offset:
Sam Cleggc94d3932017-11-17 18:14:09 +0000203; CHECK-NEXT: Opcode: I32_CONST
204; CHECK-NEXT: Value: 8
Sam Clegg48bbd632018-01-24 21:37:30 +0000205; CHECK-NEXT: Content: '01000000'
Sam Cleggc94d3932017-11-17 18:14:09 +0000206; CHECK-NEXT: - SectionOffset: 27
207; CHECK-NEXT: MemoryIndex: 0
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000208; CHECK-NEXT: Offset:
Sam Cleggc94d3932017-11-17 18:14:09 +0000209; CHECK-NEXT: Opcode: I32_CONST
210; CHECK-NEXT: Value: 12
Sam Clegg48bbd632018-01-24 21:37:30 +0000211; CHECK-NEXT: Content: '02000000'
Sam Cleggc94d3932017-11-17 18:14:09 +0000212; CHECK-NEXT: - SectionOffset: 36
213; CHECK-NEXT: MemoryIndex: 0
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000214; CHECK-NEXT: Offset:
Sam Cleggc94d3932017-11-17 18:14:09 +0000215; CHECK-NEXT: Opcode: I32_CONST
216; CHECK-NEXT: Value: 16
Sam Clegg48bbd632018-01-24 21:37:30 +0000217; CHECK-NEXT: Content: '03000000'
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000218; CHECK-NEXT: - SectionOffset: 45
219; CHECK-NEXT: MemoryIndex: 0
220; CHECK-NEXT: Offset:
221; CHECK-NEXT: Opcode: I32_CONST
Sam Clegg729a8642018-01-19 20:56:20 +0000222; CHECK-NEXT: Value: 24
223; CHECK-NEXT: Content: '00000000'
224; CHECK-NEXT: - SectionOffset: 54
225; CHECK-NEXT: MemoryIndex: 0
226; CHECK-NEXT: Offset:
227; CHECK-NEXT: Opcode: I32_CONST
228; CHECK-NEXT: Value: 28
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000229; CHECK-NEXT: Content: '616263'
Sam Cleggc94d3932017-11-17 18:14:09 +0000230; CHECK-NEXT: - Type: CUSTOM
231; CHECK-NEXT: Name: linking
Sam Clegg729a8642018-01-19 20:56:20 +0000232; CHECK-NEXT: DataSize: 31
Sam Cleggd3052d52018-01-18 23:40:49 +0000233; CHECK-NEXT: SymbolInfo:
Sam Clegg04b76f42018-01-19 21:49:41 +0000234; CHECK-NEXT: - Name: bar_import
235; CHECK-NEXT: Flags: [ BINDING_WEAK ]
Sam Cleggd3052d52018-01-18 23:40:49 +0000236; CHECK-NEXT: - Name: hello
237; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
238; CHECK-NEXT: - Name: my_func
239; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
240; CHECK-NEXT: - Name: func_comdat
241; CHECK-NEXT: Flags: [ BINDING_WEAK ]
242; CHECK-NEXT: - Name: data_comdat
243; CHECK-NEXT: Flags: [ BINDING_WEAK ]
244; CHECK-NEXT: - Name: func_addr1
245; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
246; CHECK-NEXT: - Name: func_addr2
247; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
Sam Clegg729a8642018-01-19 20:56:20 +0000248; CHECK-NEXT: - Name: func_addr3
249; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
Sam Cleggd3052d52018-01-18 23:40:49 +0000250; CHECK-NEXT: - Name: data_addr1
251; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000252; CHECK-NEXT: SegmentInfo:
Sam Cleggc94d3932017-11-17 18:14:09 +0000253; CHECK-NEXT: - Index: 0
254; CHECK-NEXT: Name: .rodata.hello_str
255; CHECK-NEXT: Alignment: 1
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000256; CHECK-NEXT: Flags: [ ]
Sam Cleggc94d3932017-11-17 18:14:09 +0000257; CHECK-NEXT: - Index: 1
258; CHECK-NEXT: Name: .data.func_addr1
259; CHECK-NEXT: Alignment: 4
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000260; CHECK-NEXT: Flags: [ ]
Sam Cleggc94d3932017-11-17 18:14:09 +0000261; CHECK-NEXT: - Index: 2
262; CHECK-NEXT: Name: .data.func_addr2
263; CHECK-NEXT: Alignment: 4
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000264; CHECK-NEXT: Flags: [ ]
Sam Cleggc94d3932017-11-17 18:14:09 +0000265; CHECK-NEXT: - Index: 3
Sam Clegg729a8642018-01-19 20:56:20 +0000266; CHECK-NEXT: Name: .data.func_addr3
267; CHECK-NEXT: Alignment: 4
268; CHECK-NEXT: Flags: [ ]
269; CHECK-NEXT: - Index: 4
Sam Cleggc94d3932017-11-17 18:14:09 +0000270; CHECK-NEXT: Name: .data.data_addr1
271; CHECK-NEXT: Alignment: 8
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000272; CHECK-NEXT: Flags: [ ]
Sam Clegg729a8642018-01-19 20:56:20 +0000273; CHECK-NEXT: - Index: 5
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000274; CHECK-NEXT: Name: .rodata.data_comdat
275; CHECK-NEXT: Alignment: 1
276; CHECK-NEXT: Flags: [ ]
277; CHECK-NEXT: Comdats:
278; CHECK-NEXT: - Name: func_comdat
279; CHECK-NEXT: Entries:
280; CHECK-NEXT: - Kind: FUNCTION
Sam Clegg729a8642018-01-19 20:56:20 +0000281; CHECK-NEXT: Index: 5
Sam Clegge0f6fcd2018-01-12 22:25:17 +0000282; CHECK-NEXT: - Kind: DATA
Sam Clegg729a8642018-01-19 20:56:20 +0000283; CHECK-NEXT: Index: 5
Sam Cleggc94d3932017-11-17 18:14:09 +0000284; CHECK-NEXT: - Type: CUSTOM
285; CHECK-NEXT: Name: name
Rui Ueyama1ce416c2017-12-12 20:00:30 +0000286; CHECK-NEXT: FunctionNames:
Sam Cleggc94d3932017-11-17 18:14:09 +0000287; CHECK-NEXT: - Index: 0
288; CHECK-NEXT: Name: puts
289; CHECK-NEXT: - Index: 1
290; CHECK-NEXT: Name: foo_import
291; CHECK-NEXT: - Index: 2
Sam Clegg729a8642018-01-19 20:56:20 +0000292; CHECK-NEXT: Name: bar_import
Sam Cleggc94d3932017-11-17 18:14:09 +0000293; CHECK-NEXT: - Index: 3
Sam Clegg729a8642018-01-19 20:56:20 +0000294; CHECK-NEXT: Name: hello
Sam Clegg1963d712018-01-17 20:19:04 +0000295; CHECK-NEXT: - Index: 4
Sam Clegg729a8642018-01-19 20:56:20 +0000296; CHECK-NEXT: Name: my_func
297; CHECK-NEXT: - Index: 5
Sam Clegg1963d712018-01-17 20:19:04 +0000298; CHECK-NEXT: Name: func_comdat
Sam Cleggc94d3932017-11-17 18:14:09 +0000299; CHECK-NEXT: ...