120
|
1 ; RUN: verify-uselistorder < %s
|
|
2
|
|
3 ; Global referencing ifunc.
|
|
4 @ptr_foo = global void ()* @foo_ifunc
|
|
5
|
|
6 ; Alias for ifunc.
|
|
7 @alias_foo = alias void (), void ()* @foo_ifunc
|
|
8
|
|
9 @foo_ifunc = ifunc void (), i8* ()* @foo_resolver
|
|
10
|
|
11 define i8* @foo_resolver() {
|
|
12 entry:
|
|
13 ret i8* null
|
|
14 }
|
|
15
|
|
16 ; Function referencing ifunc.
|
|
17 define void @bar() {
|
|
18 entry:
|
|
19 call void @foo_ifunc()
|
|
20 ret void
|
|
21 }
|
|
22
|
|
23 ; Global referencing function.
|
|
24 @ptr_bar = global void ()* @bar
|
|
25
|
|
26 ; Alias for function.
|
|
27 @alias_bar = alias void (), void ()* @bar
|
|
28
|
|
29 @bar_ifunc = ifunc void (), i8* ()* @bar2_ifunc
|
|
30 @bar2_ifunc = ifunc i8* (), i8* ()* @bar_resolver
|
|
31
|
|
32 define i8* @bar_resolver() {
|
|
33 entry:
|
|
34 ret i8* null
|
|
35 }
|
|
36
|
|
37 ; Function referencing bar.
|
|
38 define void @bar2() {
|
|
39 entry:
|
|
40 call void @bar()
|
|
41 ret void
|
|
42 }
|