summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2013-01-16 18:39:23 +0000
committerDaniel Dunbar <daniel@zuster.org>2013-01-16 18:39:23 +0000
commit0ec72bbc4ddf7a64cc709d5b05001f17a8b9fa90 (patch)
tree73a872b49d5e4d1587b1f25ad4458ba73751bb0d /llvm/test
parentb5d9d630d87263766f71bcd3c3d9000b4dff4107 (diff)
downloadbcm5719-llvm-0ec72bbc4ddf7a64cc709d5b05001f17a8b9fa90.tar.gz
bcm5719-llvm-0ec72bbc4ddf7a64cc709d5b05001f17a8b9fa90.zip
[Linker] Change module flag linking to be more extensible.
- Instead of computing a bunch of buckets of different flag types, just do an incremental link resolving conflicts as they arise. - This also has the advantage of making the link result deterministic and not dependent on map iteration order. llvm-svn: 172634
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Linker/module-flags-1-a.ll4
-rw-r--r--llvm/test/Linker/module-flags-3-a.ll8
-rw-r--r--llvm/test/Linker/module-flags-7-a.ll9
-rw-r--r--llvm/test/Linker/module-flags-7-b.ll6
4 files changed, 21 insertions, 6 deletions
diff --git a/llvm/test/Linker/module-flags-1-a.ll b/llvm/test/Linker/module-flags-1-a.ll
index 973aa80822c..32f189cf99f 100644
--- a/llvm/test/Linker/module-flags-1-a.ll
+++ b/llvm/test/Linker/module-flags-1-a.ll
@@ -3,10 +3,10 @@
; Test basic functionality of module flags.
; CHECK: !0 = metadata !{i32 1, metadata !"foo", i32 37}
-; CHECK: !1 = metadata !{i32 1, metadata !"qux", i32 42}
+; CHECK: !1 = metadata !{i32 2, metadata !"bar", i32 42}
; CHECK: !2 = metadata !{i32 1, metadata !"mux", metadata !3}
; CHECK: !3 = metadata !{metadata !"hello world", i32 927}
-; CHECK: !4 = metadata !{i32 2, metadata !"bar", i32 42}
+; CHECK: !4 = metadata !{i32 1, metadata !"qux", i32 42}
; CHECK: !llvm.module.flags = !{!0, !1, !2, !4}
!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
diff --git a/llvm/test/Linker/module-flags-3-a.ll b/llvm/test/Linker/module-flags-3-a.ll
index 4233a0a7a5b..e7a720e9c02 100644
--- a/llvm/test/Linker/module-flags-3-a.ll
+++ b/llvm/test/Linker/module-flags-3-a.ll
@@ -3,10 +3,10 @@
; Test 'require' behavior.
; CHECK: !0 = metadata !{i32 1, metadata !"foo", i32 37}
-; CHECK: !1 = metadata !{i32 3, metadata !"foo", metadata !2}
-; CHECK: !2 = metadata !{metadata !"bar", i32 42}
-; CHECK: !3 = metadata !{i32 1, metadata !"bar", i32 42}
-; CHECK: !llvm.module.flags = !{!0, !1, !3}
+; CHECK: !1 = metadata !{i32 1, metadata !"bar", i32 42}
+; CHECK: !2 = metadata !{i32 3, metadata !"foo", metadata !3}
+; CHECK: !3 = metadata !{metadata !"bar", i32 42}
+; CHECK: !llvm.module.flags = !{!0, !1, !2}
!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
!1 = metadata !{ i32 1, metadata !"bar", i32 42 }
diff --git a/llvm/test/Linker/module-flags-7-a.ll b/llvm/test/Linker/module-flags-7-a.ll
new file mode 100644
index 00000000000..976c8fecf5f
--- /dev/null
+++ b/llvm/test/Linker/module-flags-7-a.ll
@@ -0,0 +1,9 @@
+; RUN: not llvm-link %s %p/module-flags-7-b.ll -S -o - 2>&1 | FileCheck %s
+
+; Test module flags error messages.
+
+; CHECK: linking module flags 'foo': IDs have conflicting behaviors
+
+!0 = metadata !{ i32 1, metadata !"foo", i32 37 }
+
+!llvm.module.flags = !{ !0 }
diff --git a/llvm/test/Linker/module-flags-7-b.ll b/llvm/test/Linker/module-flags-7-b.ll
new file mode 100644
index 00000000000..2bc72508d46
--- /dev/null
+++ b/llvm/test/Linker/module-flags-7-b.ll
@@ -0,0 +1,6 @@
+; This file is used with module-flags-7-a.ll
+; RUN: true
+
+!0 = metadata !{ i32 2, metadata !"foo", i32 37 }
+
+!llvm.module.flags = !{ !0 }
OpenPOWER on IntegriCloud