| ; RUN: verify-uselistorder < %s | |
| ; Global referencing ifunc. | |
| @ptr_foo = global void ()* @foo_ifunc | |
| ; Alias for ifunc. | |
| @alias_foo = alias void (), void ()* @foo_ifunc | |
| @foo_ifunc = ifunc void (), i8* ()* @foo_resolver | |
| define i8* @foo_resolver() { | |
| entry: | |
| ret i8* null | |
| } | |
| ; Function referencing ifunc. | |
| define void @bar() { | |
| entry: | |
| call void @foo_ifunc() | |
| ret void | |
| } | |
| ; Global referencing function. | |
| @ptr_bar = global void ()* @bar | |
| ; Alias for function. | |
| @alias_bar = alias void (), void ()* @bar | |
| @bar_ifunc = ifunc void (), i8* ()* @bar2_ifunc | |
| @bar2_ifunc = ifunc i8* (), i8* ()* @bar_resolver | |
| define i8* @bar_resolver() { | |
| entry: | |
| ret i8* null | |
| } | |
| ; Function referencing bar. | |
| define void @bar2() { | |
| entry: | |
| call void @bar() | |
| ret void | |
| } |