aboutsummaryrefslogtreecommitdiff
path: root/test/wasm/Inputs/weak-alias.ll
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-12-24 01:00:50 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-12-24 01:00:50 +0000
commit0d9ba4fe26725cacc7253fc3c72c4574f26bc099 (patch)
tree90c426d54188ca226b29aaf8a308bba364a73d1a /test/wasm/Inputs/weak-alias.ll
parenteb1ff93d02b5f17b6b409e83c6d9be585f4a04b3 (diff)
downloadsrc-0d9ba4fe26725cacc7253fc3c72c4574f26bc099.tar.gz
src-0d9ba4fe26725cacc7253fc3c72c4574f26bc099.zip
Vendor import of lld trunk r321414:vendor/lld/lld-trunk-r321414
Notes
Notes: svn path=/vendor/lld/dist/; revision=327130 svn path=/vendor/lld/lld-trunk-r321414/; revision=327131; tag=vendor/lld/lld-trunk-r321414
Diffstat (limited to 'test/wasm/Inputs/weak-alias.ll')
-rw-r--r--test/wasm/Inputs/weak-alias.ll32
1 files changed, 28 insertions, 4 deletions
diff --git a/test/wasm/Inputs/weak-alias.ll b/test/wasm/Inputs/weak-alias.ll
index 079e68e3ce7a..b911b35529c5 100644
--- a/test/wasm/Inputs/weak-alias.ll
+++ b/test/wasm/Inputs/weak-alias.ll
@@ -1,13 +1,37 @@
; Function Attrs: norecurse nounwind readnone
-define i32 @foo() #0 {
+define i32 @direct_fn() #0 {
entry:
ret i32 0
}
-@bar = weak alias i32 (), i32 ()* @foo
+@alias_fn = weak alias i32 (), i32 ()* @direct_fn
-define i32 @call_bar() #0 {
+define i32 @call_direct() #0 {
entry:
- %call = call i32 @bar()
+ %call = call i32 @direct_fn()
+ ret i32 %call
+}
+
+define i32 @call_alias() #0 {
+entry:
+ %call = call i32 @alias_fn()
+ ret i32 %call
+}
+
+define i32 @call_alias_ptr() #0 {
+entry:
+ %fnptr = alloca i32 ()*, align 8
+ store i32 ()* @alias_fn, i32 ()** %fnptr, align 8
+ %0 = load i32 ()*, i32 ()** %fnptr, align 8
+ %call = call i32 %0()
+ ret i32 %call
+}
+
+define i32 @call_direct_ptr() #0 {
+entry:
+ %fnptr = alloca i32 ()*, align 8
+ store i32 ()* @direct_fn, i32 ()** %fnptr, align 8
+ %0 = load i32 ()*, i32 ()** %fnptr, align 8
+ %call = call i32 %0()
ret i32 %call
}