diff options
Diffstat (limited to 'test/Linker/Inputs')
-rw-r--r-- | test/Linker/Inputs/PR11464.a.ll | 3 | ||||
-rw-r--r-- | test/Linker/Inputs/PR11464.b.ll | 13 | ||||
-rw-r--r-- | test/Linker/Inputs/PR8300.a.ll | 2 | ||||
-rw-r--r-- | test/Linker/Inputs/PR8300.b.ll | 9 | ||||
-rw-r--r-- | test/Linker/Inputs/basiclink.a.ll | 2 | ||||
-rw-r--r-- | test/Linker/Inputs/basiclink.b.ll | 6 | ||||
-rw-r--r-- | test/Linker/Inputs/linkage.a.ll | 2 | ||||
-rw-r--r-- | test/Linker/Inputs/linkage.b.ll | 10 |
8 files changed, 47 insertions, 0 deletions
diff --git a/test/Linker/Inputs/PR11464.a.ll b/test/Linker/Inputs/PR11464.a.ll new file mode 100644 index 0000000..25a9350 --- /dev/null +++ b/test/Linker/Inputs/PR11464.a.ll @@ -0,0 +1,3 @@ +%bug_type = type opaque +declare i32 @bug_a(%bug_type*) +declare i32 @bug_b(%bug_type*) diff --git a/test/Linker/Inputs/PR11464.b.ll b/test/Linker/Inputs/PR11464.b.ll new file mode 100644 index 0000000..7ef5a36 --- /dev/null +++ b/test/Linker/Inputs/PR11464.b.ll @@ -0,0 +1,13 @@ +%bug_type = type { %bug_type* } +%bar = type { i32 } + +define i32 @bug_a(%bug_type* %fp) nounwind uwtable { +entry: + %d_stream = getelementptr inbounds %bug_type* %fp, i64 0, i32 0 + ret i32 0 +} + +define i32 @bug_b(%bar* %a) nounwind uwtable { +entry: + ret i32 0 +} diff --git a/test/Linker/Inputs/PR8300.a.ll b/test/Linker/Inputs/PR8300.a.ll new file mode 100644 index 0000000..c705db3 --- /dev/null +++ b/test/Linker/Inputs/PR8300.a.ll @@ -0,0 +1,2 @@ +%foo2 = type { [8 x i8] } +declare void @zed(%foo2*) diff --git a/test/Linker/Inputs/PR8300.b.ll b/test/Linker/Inputs/PR8300.b.ll new file mode 100644 index 0000000..9e538f5 --- /dev/null +++ b/test/Linker/Inputs/PR8300.b.ll @@ -0,0 +1,9 @@ +%foo = type { [8 x i8] } +%bar = type { [9 x i8] } + +@zed = alias bitcast (void (%bar*)* @xyz to void (%foo*)*) + +define void @xyz(%bar* %this) { +entry: + ret void +} diff --git a/test/Linker/Inputs/basiclink.a.ll b/test/Linker/Inputs/basiclink.a.ll new file mode 100644 index 0000000..997932d --- /dev/null +++ b/test/Linker/Inputs/basiclink.a.ll @@ -0,0 +1,2 @@ +define i32* @foo(i32 %x) { ret i32* @baz } +@baz = external global i32 diff --git a/test/Linker/Inputs/basiclink.b.ll b/test/Linker/Inputs/basiclink.b.ll new file mode 100644 index 0000000..0d2abc7 --- /dev/null +++ b/test/Linker/Inputs/basiclink.b.ll @@ -0,0 +1,6 @@ +declare i32* @foo(...) +define i32* @bar() { + %ret = call i32* (...)* @foo( i32 123 ) + ret i32* %ret +} +@baz = global i32 0 diff --git a/test/Linker/Inputs/linkage.a.ll b/test/Linker/Inputs/linkage.a.ll new file mode 100644 index 0000000..8a156f6 --- /dev/null +++ b/test/Linker/Inputs/linkage.a.ll @@ -0,0 +1,2 @@ +@X = linkonce global i32 5 +define linkonce i32 @foo() { ret i32 7 } diff --git a/test/Linker/Inputs/linkage.b.ll b/test/Linker/Inputs/linkage.b.ll new file mode 100644 index 0000000..0ada3f4 --- /dev/null +++ b/test/Linker/Inputs/linkage.b.ll @@ -0,0 +1,10 @@ +@X = external global i32 + +declare i32 @foo() + +define void @bar() { + load i32* @X + call i32 @foo() + ret void +} + |