summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-04-22 14:58:02 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-04-22 14:58:02 +0000
commit74f2e46eeff9e5ad001259a74c56a1b4d71776e3 (patch)
tree38def27a52541cec8867c80bb19097342a5d1911 /llvm/test
parentda466db02ad02b818dbbeeb6349330ca7b4a9514 (diff)
downloadbcm5719-llvm-74f2e46eeff9e5ad001259a74c56a1b4d71776e3.tar.gz
bcm5719-llvm-74f2e46eeff9e5ad001259a74c56a1b4d71776e3.zip
Clarify that llvm.used can contain aliases.
Also add a check for llvm.used in the verifier and simplify clients now that they can assume they have a ConstantArray. llvm-svn: 180019
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Feature/aliases.ll2
-rw-r--r--llvm/test/Verifier/llvm.used-invalid-init.ll6
-rw-r--r--llvm/test/Verifier/llvm.used-invalid-init2.ll7
-rw-r--r--llvm/test/Verifier/llvm.used-invalid-type.ll6
-rw-r--r--llvm/test/Verifier/llvm.used-invalid-type2.ll5
-rw-r--r--llvm/test/Verifier/llvm.used-ptr-type.ll4
6 files changed, 30 insertions, 0 deletions
diff --git a/llvm/test/Feature/aliases.ll b/llvm/test/Feature/aliases.ll
index d44dff4c43c..139381215ee 100644
--- a/llvm/test/Feature/aliases.ll
+++ b/llvm/test/Feature/aliases.ll
@@ -2,6 +2,8 @@
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
; RUN: diff %t1.ll %t2.ll
+@llvm.used = appending global [1 x i8*] [i8* bitcast (i32* @foo1 to i8*)], section "llvm.metadata"
+
@bar = external global i32
@foo1 = alias i32* @bar
@foo2 = alias i32* @bar
diff --git a/llvm/test/Verifier/llvm.used-invalid-init.ll b/llvm/test/Verifier/llvm.used-invalid-init.ll
new file mode 100644
index 00000000000..b0887c994e7
--- /dev/null
+++ b/llvm/test/Verifier/llvm.used-invalid-init.ll
@@ -0,0 +1,6 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+
+@llvm.used = appending global [1 x i8*] zeroinitializer, section "llvm.metadata"
+
+; CHECK: wrong initalizer for intrinsic global variable
+; CHECK-NEXT: [1 x i8*] zeroinitializer
diff --git a/llvm/test/Verifier/llvm.used-invalid-init2.ll b/llvm/test/Verifier/llvm.used-invalid-init2.ll
new file mode 100644
index 00000000000..ee8a970bf10
--- /dev/null
+++ b/llvm/test/Verifier/llvm.used-invalid-init2.ll
@@ -0,0 +1,7 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+
+@a = global i8 42
+@llvm.used = appending global [2 x i8*] [i8* @a, i8* null], section "llvm.metadata"
+
+; CHECK: invalid llvm.used member
+; CHECK-NEXT: i8* null
diff --git a/llvm/test/Verifier/llvm.used-invalid-type.ll b/llvm/test/Verifier/llvm.used-invalid-type.ll
new file mode 100644
index 00000000000..2de5c86fce3
--- /dev/null
+++ b/llvm/test/Verifier/llvm.used-invalid-type.ll
@@ -0,0 +1,6 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+
+@llvm.used = appending global [1 x i32] [i32 0], section "llvm.metadata"
+
+; CHECK: wrong type for intrinsic global variable
+; CHECK-NEXT: [1 x i32]* @llvm.used
diff --git a/llvm/test/Verifier/llvm.used-invalid-type2.ll b/llvm/test/Verifier/llvm.used-invalid-type2.ll
new file mode 100644
index 00000000000..bff3f2d153a
--- /dev/null
+++ b/llvm/test/Verifier/llvm.used-invalid-type2.ll
@@ -0,0 +1,5 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+@llvm.used = appending global i32 0, section "llvm.metadata"
+
+; CHECK: Only global arrays can have appending linkage!
+; CHEKC-NEXT: i32* @llvm.used
diff --git a/llvm/test/Verifier/llvm.used-ptr-type.ll b/llvm/test/Verifier/llvm.used-ptr-type.ll
new file mode 100644
index 00000000000..adfb1691d34
--- /dev/null
+++ b/llvm/test/Verifier/llvm.used-ptr-type.ll
@@ -0,0 +1,4 @@
+; RUN: llvm-as < %s -o /dev/null
+
+@a = global i32 42
+@llvm.used = appending global [1 x i32*] [i32* @a], section "llvm.metadata"
OpenPOWER on IntegriCloud