diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-24 01:00:50 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-24 01:00:50 +0000 |
commit | 0d9ba4fe26725cacc7253fc3c72c4574f26bc099 (patch) | |
tree | 90c426d54188ca226b29aaf8a308bba364a73d1a /test/wasm/Inputs/weak-alias.ll | |
parent | eb1ff93d02b5f17b6b409e83c6d9be585f4a04b3 (diff) | |
download | src-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.ll | 32 |
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 } |