| ; RUN: llc < %s -O0 -mcpu=generic -mtriple=i686-linux-gnu -relocation-model=pic | FileCheck %s |
| ; RUN: llc < %s -O0 -mcpu=generic -mtriple=i686-linux-gnu -fast-isel -relocation-model=pic | FileCheck %s |
| ; RUN: llc < %s -O0 -mcpu=generic -mtriple=x86_64-linux-gnu -relocation-model=pic | FileCheck %s |
| ; RUN: llc < %s -O0 -mcpu=generic -mtriple=x86_64-linux-gnu -fast-isel -relocation-model=pic | FileCheck %s |
| |
| ; CHECK-LABEL: bar: |
| ; CHECK: call{{l|q}} foo{{$}} |
| ; CHECK: call{{l|q}} weak_odr_foo{{$}} |
| ; CHECK: call{{l|q}} weak_foo{{$}} |
| ; CHECK: call{{l|q}} internal_foo{{$}} |
| ; CHECK: call{{l|q}} ext_baz@PLT |
| |
| define weak void @weak_foo() { |
| ret void |
| } |
| |
| define weak_odr void @weak_odr_foo() { |
| ret void |
| } |
| |
| define internal void @internal_foo() { |
| ret void |
| } |
| |
| declare i32 @ext_baz() |
| |
| define void @foo() { |
| ret void |
| } |
| |
| define void @bar() { |
| entry: |
| call void @foo() |
| call void @weak_odr_foo() |
| call void @weak_foo() |
| call void @internal_foo() |
| call i32 @ext_baz() |
| ret void |
| } |
| |
| ; -fpie for local global data tests should be added here |
| |
| !llvm.module.flags = !{!0, !1} |
| !0 = !{i32 1, !"PIC Level", i32 1} |
| !1 = !{i32 1, !"PIE Level", i32 1} |