1; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s 2; RUN: verify-uselistorder %s 3 4declare void @extern_func() 5 6; CHECK: @call_extern_func 7; CHECK: call void dso_local_equivalent @extern_func() 8define void @call_extern_func() { 9 call void dso_local_equivalent @extern_func() 10 ret void 11} 12 13declare hidden void @hidden_func() 14declare protected void @protected_func() 15declare dso_local void @dso_local_func() 16define internal void @internal_func() { 17entry: 18 ret void 19} 20define private void @private_func() { 21entry: 22 ret void 23} 24 25; CHECK: @call_hidden_func 26; CHECK: call void dso_local_equivalent @hidden_func() 27define void @call_hidden_func() { 28 call void dso_local_equivalent @hidden_func() 29 ret void 30} 31 32; CHECK: @call_protected_func 33; CHECK: call void dso_local_equivalent @protected_func() 34define void @call_protected_func() { 35 call void dso_local_equivalent @protected_func() 36 ret void 37} 38 39; CHECK: @call_dso_local_func 40; CHECK: call void dso_local_equivalent @dso_local_func() 41define void @call_dso_local_func() { 42 call void dso_local_equivalent @dso_local_func() 43 ret void 44} 45 46; CHECK: @call_internal_func 47; CHECK: call void dso_local_equivalent @internal_func() 48define void @call_internal_func() { 49 call void dso_local_equivalent @internal_func() 50 ret void 51} 52 53define void @aliasee_func() { 54entry: 55 ret void 56} 57 58@alias_func = alias void (), ptr @aliasee_func 59@dso_local_alias_func = dso_local alias void (), ptr @aliasee_func 60 61; CHECK: @call_alias_func 62; CHECK: call void dso_local_equivalent @alias_func() 63define void @call_alias_func() { 64 call void dso_local_equivalent @alias_func() 65 ret void 66} 67 68; CHECK: @call_dso_local_alias_func 69; CHECK: call void dso_local_equivalent @dso_local_alias_func() 70define void @call_dso_local_alias_func() { 71 call void dso_local_equivalent @dso_local_alias_func() 72 ret void 73} 74 75@ifunc_func = ifunc void (), ptr @resolver 76@dso_local_ifunc_func = dso_local ifunc void (), ptr @resolver 77 78define internal ptr @resolver() { 79entry: 80 ret ptr null 81} 82 83; CHECK: @call_ifunc_func 84; CHECK: call void dso_local_equivalent @ifunc_func() 85define void @call_ifunc_func() { 86 call void dso_local_equivalent @ifunc_func() 87 ret void 88} 89 90; CHECK: @call_dso_local_ifunc_func 91; CHECK: call void dso_local_equivalent @dso_local_ifunc_func() 92define void @call_dso_local_ifunc_func() { 93 call void dso_local_equivalent @dso_local_ifunc_func() 94 ret void 95} 96