40 lines · plain
1target triple = "wasm32-unknown-unknown"2 3; Function Attrs: norecurse nounwind readnone4define i32 @direct_fn() #0 {5entry:6 ret i32 07}8 9@alias_fn = weak alias i32 (), ptr @direct_fn10 11define i32 @call_direct() #0 {12entry:13 %call = call i32 @direct_fn()14 ret i32 %call15}16 17define i32 @call_alias() #0 {18entry:19 %call = call i32 @alias_fn()20 ret i32 %call21}22 23define i32 @call_alias_ptr() #0 {24entry:25 %fnptr = alloca ptr, align 826 store ptr @alias_fn, ptr %fnptr, align 827 %0 = load ptr, ptr %fnptr, align 828 %call = call i32 %0()29 ret i32 %call30}31 32define i32 @call_direct_ptr() #0 {33entry:34 %fnptr = alloca ptr, align 835 store ptr @direct_fn, ptr %fnptr, align 836 %0 = load ptr, ptr %fnptr, align 837 %call = call i32 %0()38 ret i32 %call39}40