summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/commandline-metadata.ll13
-rw-r--r--llvm/test/Linker/Inputs/commandline.a.ll3
-rw-r--r--llvm/test/Linker/Inputs/commandline.b.ll2
-rw-r--r--llvm/test/Linker/commandline.ll8
-rw-r--r--llvm/test/Verifier/commandline-meta1.ll10
-rw-r--r--llvm/test/Verifier/commandline-meta2.ll10
-rw-r--r--llvm/test/Verifier/commandline-meta3.ll10
-rw-r--r--llvm/test/Verifier/commandline-meta4.ll9
8 files changed, 65 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/commandline-metadata.ll b/llvm/test/CodeGen/X86/commandline-metadata.ll
new file mode 100644
index 00000000000..de77dd27b16
--- /dev/null
+++ b/llvm/test/CodeGen/X86/commandline-metadata.ll
@@ -0,0 +1,13 @@
+; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
+; Verify that llvm.commandline metadata is emitted to a section named
+; .GCC.command.line with each line separated with null bytes.
+
+; CHECK: .section .GCC.command.line,"MS",@progbits,1
+; CHECK-NEXT: .zero 1
+; CHECK-NEXT: .ascii "clang -command -line"
+; CHECK-NEXT: .zero 1
+; CHECK-NEXT: .ascii "something else"
+; CHECK-NEXT: .zero 1
+!llvm.commandline = !{!0, !1}
+!0 = !{!"clang -command -line"}
+!1 = !{!"something else"}
diff --git a/llvm/test/Linker/Inputs/commandline.a.ll b/llvm/test/Linker/Inputs/commandline.a.ll
new file mode 100644
index 00000000000..445ee74301e
--- /dev/null
+++ b/llvm/test/Linker/Inputs/commandline.a.ll
@@ -0,0 +1,3 @@
+!llvm.commandline = !{!0, !1}
+!0 = !{!"compiler -v1"}
+!1 = !{!"compiler -v2"}
diff --git a/llvm/test/Linker/Inputs/commandline.b.ll b/llvm/test/Linker/Inputs/commandline.b.ll
new file mode 100644
index 00000000000..16011fc4055
--- /dev/null
+++ b/llvm/test/Linker/Inputs/commandline.b.ll
@@ -0,0 +1,2 @@
+!llvm.commandline = !{!0}
+!0 = !{!"compiler -v3"}
diff --git a/llvm/test/Linker/commandline.ll b/llvm/test/Linker/commandline.ll
new file mode 100644
index 00000000000..ba201c82be9
--- /dev/null
+++ b/llvm/test/Linker/commandline.ll
@@ -0,0 +1,8 @@
+; RUN: llvm-link %S/Inputs/commandline.a.ll %S/Inputs/commandline.b.ll -S | FileCheck %s
+
+; Verify that multiple input llvm.commandline metadata are linked together.
+
+; CHECK-DAG: !llvm.commandline = !{!0, !1, !2}
+; CHECK-DAG: !{{[0-2]}} = !{!"compiler -v1"}
+; CHECK-DAG: !{{[0-2]}} = !{!"compiler -v2"}
+; CHECK-DAG: !{{[0-2]}} = !{!"compiler -v3"}
diff --git a/llvm/test/Verifier/commandline-meta1.ll b/llvm/test/Verifier/commandline-meta1.ll
new file mode 100644
index 00000000000..5c39bbdde6d
--- /dev/null
+++ b/llvm/test/Verifier/commandline-meta1.ll
@@ -0,0 +1,10 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+; Verify that llvm.commandline is properly structured.
+; llvm.commandline takes a list of metadata entries.
+; Each metadata entry can have only one string.
+
+!llvm.commandline = !{!0}
+!0 = !{!"string1", !"string2"}
+; CHECK: assembly parsed, but does not verify as correct!
+; CHECK-NEXT: incorrect number of operands in llvm.commandline metadata
+; CHECK-NEXT: !0
diff --git a/llvm/test/Verifier/commandline-meta2.ll b/llvm/test/Verifier/commandline-meta2.ll
new file mode 100644
index 00000000000..46eeb8cdf4e
--- /dev/null
+++ b/llvm/test/Verifier/commandline-meta2.ll
@@ -0,0 +1,10 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+; Verify that llvm.commandline is properly structured.
+; llvm.commandline takes a list of metadata entries.
+; Each metadata entry can contain one string only.
+
+!llvm.commandline = !{!0}
+!0 = !{i32 1}
+; CHECK: assembly parsed, but does not verify as correct!
+; CHECK-NEXT: invalid value for llvm.commandline metadata entry operand(the operand should be a string)
+; CHECK-NEXT: i32 1
diff --git a/llvm/test/Verifier/commandline-meta3.ll b/llvm/test/Verifier/commandline-meta3.ll
new file mode 100644
index 00000000000..f27f7ca5650
--- /dev/null
+++ b/llvm/test/Verifier/commandline-meta3.ll
@@ -0,0 +1,10 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+; Verify that llvm.commandline is properly structured.
+; llvm.commandline takes a list of metadata entries.
+; Each metadata entry can contain one string only.
+
+!llvm.commandline = !{!0}
+!0 = !{!{!"nested metadata"}}
+; CHECK: assembly parsed, but does not verify as correct!
+; CHECK-NEXT: invalid value for llvm.commandline metadata entry operand(the operand should be a string)
+; CHECK-NEXT: !1
diff --git a/llvm/test/Verifier/commandline-meta4.ll b/llvm/test/Verifier/commandline-meta4.ll
new file mode 100644
index 00000000000..b0d103c4b23
--- /dev/null
+++ b/llvm/test/Verifier/commandline-meta4.ll
@@ -0,0 +1,9 @@
+; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
+; Verify that llvm.commandline is properly structured.
+; llvm.commandline takes a list of metadata entries.
+; Each metadata entry can contain one string only.
+
+!llvm.commandline = !{!0}
+!0 = !{null}
+; CHECK: assembly parsed, but does not verify as correct!
+; CHECK-NEXT: invalid value for llvm.commandline metadata entry operand(the operand should be a string)
OpenPOWER on IntegriCloud