diff options
Diffstat (limited to 'test/Assembler/ifunc-use-list-order.ll')
-rw-r--r-- | test/Assembler/ifunc-use-list-order.ll | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/Assembler/ifunc-use-list-order.ll b/test/Assembler/ifunc-use-list-order.ll new file mode 100644 index 0000000000000..efd8dcc3f8791 --- /dev/null +++ b/test/Assembler/ifunc-use-list-order.ll @@ -0,0 +1,42 @@ +; 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 +} |