summaryrefslogtreecommitdiffstats
path: root/test/Linker
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2011-02-20 12:57:14 +0000
committerdim <dim@FreeBSD.org>2011-02-20 12:57:14 +0000
commitcbb70ce070d220642b038ea101d9c0f9fbf860d6 (patch)
treed2b61ce94e654cb01a254d2195259db5f9cc3f3c /test/Linker
parent4ace901e87dac5bbbac78ed325e75462e48e386e (diff)
downloadFreeBSD-src-cbb70ce070d220642b038ea101d9c0f9fbf860d6.zip
FreeBSD-src-cbb70ce070d220642b038ea101d9c0f9fbf860d6.tar.gz
Vendor import of llvm trunk r126079:
http://llvm.org/svn/llvm-project/llvm/trunk@126079
Diffstat (limited to 'test/Linker')
-rw-r--r--test/Linker/PR8300.ll13
-rw-r--r--test/Linker/available_externally_a.ll5
-rw-r--r--test/Linker/available_externally_b.ll4
-rw-r--r--test/Linker/link-archive.ll1
-rw-r--r--test/Linker/linkmdnode.ll1
-rw-r--r--test/Linker/linkmdnode2.ll10
-rw-r--r--test/Linker/unnamed-addr1-a.ll27
-rw-r--r--test/Linker/unnamed-addr1-b.ll12
8 files changed, 73 insertions, 0 deletions
diff --git a/test/Linker/PR8300.ll b/test/Linker/PR8300.ll
new file mode 100644
index 0000000..f0fc1e7
--- /dev/null
+++ b/test/Linker/PR8300.ll
@@ -0,0 +1,13 @@
+; RUN: echo {%foo2 = type \{ \[8 x i8\] \} \
+; RUN: declare void @zed(%foo2*) } > %t.ll
+; RUN: llvm-link %t.ll %s -o %t.bc
+
+%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/available_externally_a.ll b/test/Linker/available_externally_a.ll
new file mode 100644
index 0000000..3ae4ce2
--- /dev/null
+++ b/test/Linker/available_externally_a.ll
@@ -0,0 +1,5 @@
+; RUN: llvm-link %s %p/available_externally_b.ll -S -o - | FileCheck %s
+
+@foo = available_externally unnamed_addr constant i32 0
+
+; CHECK: @foo = hidden unnamed_addr constant i32 0
diff --git a/test/Linker/available_externally_b.ll b/test/Linker/available_externally_b.ll
new file mode 100644
index 0000000..5269817
--- /dev/null
+++ b/test/Linker/available_externally_b.ll
@@ -0,0 +1,4 @@
+; This file is for use with available_externally_a.ll
+; RUN: true
+
+@foo = hidden unnamed_addr constant i32 0
diff --git a/test/Linker/link-archive.ll b/test/Linker/link-archive.ll
index 6696fcc..9251b4e 100644
--- a/test/Linker/link-archive.ll
+++ b/test/Linker/link-archive.ll
@@ -1,5 +1,6 @@
; Test linking of a bc file to an archive via llvm-ld.
; PR1434
+; RUN: rm -f %t.bar.a %t.foo.a
; RUN: llvm-as %s -o %t.bar.bc
; RUN: echo {define i32* @foo(i32 %x) \{ ret i32* @baz \} \
; RUN: @baz = external global i32 } | llvm-as -o %t.foo.bc
diff --git a/test/Linker/linkmdnode.ll b/test/Linker/linkmdnode.ll
index be74550..5f11580 100644
--- a/test/Linker/linkmdnode.ll
+++ b/test/Linker/linkmdnode.ll
@@ -10,3 +10,4 @@ define void @foo() {
%x = call i8 @llvm.something(metadata !21)
ret void
}
+
diff --git a/test/Linker/linkmdnode2.ll b/test/Linker/linkmdnode2.ll
index 54a5a57..a7d991a 100644
--- a/test/Linker/linkmdnode2.ll
+++ b/test/Linker/linkmdnode2.ll
@@ -10,3 +10,13 @@ define void @foo1() {
%x = call i8 @llvm.something(metadata !22)
ret void
}
+
+
+
+; PR9015
+define void @test() {
+ ret void, !abc !0
+}
+
+!0 = metadata !{metadata !0, i32 42 }
+
diff --git a/test/Linker/unnamed-addr1-a.ll b/test/Linker/unnamed-addr1-a.ll
new file mode 100644
index 0000000..1ddac9c
--- /dev/null
+++ b/test/Linker/unnamed-addr1-a.ll
@@ -0,0 +1,27 @@
+; RUN: llvm-link %s %p/unnamed-addr1-b.ll -S -o - | sort | FileCheck %s
+
+; Only in this file
+@a = common global i32 0
+; CHECK: @a = common global i32 0
+@b = common unnamed_addr global i32 0
+; CHECK: @b = common unnamed_addr global i32 0
+
+; Other file has unnamed_addr definition
+@c = common unnamed_addr global i32 0
+; CHECK: @c = common unnamed_addr global i32 0
+@d = external global i32
+; CHECK: @d = global i32 42
+@e = external unnamed_addr global i32
+; CHECK: @e = unnamed_addr global i32 42
+@f = weak global i32 42
+; CHECK: @f = global i32 42
+
+; Other file has non-unnamed_addr definition
+@g = common unnamed_addr global i32 0
+; CHECK: @g = common global i32 0
+@h = external global i32
+; CHECK: @h = global i32 42
+@i = external unnamed_addr global i32
+; CHECK: @i = global i32 42
+@j = weak global i32 42
+; CHECK: @j = global i32 42
diff --git a/test/Linker/unnamed-addr1-b.ll b/test/Linker/unnamed-addr1-b.ll
new file mode 100644
index 0000000..7d94dc1
--- /dev/null
+++ b/test/Linker/unnamed-addr1-b.ll
@@ -0,0 +1,12 @@
+; This file is for use with unnamed-addr1-a.ll
+; RUN: true
+
+@c = common unnamed_addr global i32 42
+@d = unnamed_addr global i32 42
+@e = unnamed_addr global i32 42
+@f = unnamed_addr global i32 42
+
+@g = common global i32 42
+@h = global i32 42
+@i = global i32 42
+@j = global i32 42
OpenPOWER on IntegriCloud