[lld] r227711 - [test] Add test for section groups and deadstrip
Shankar Easwaran
shankare at codeaurora.org
Sat Jan 31 21:47:02 PST 2015
Author: shankare
Date: Sat Jan 31 23:47:02 2015
New Revision: 227711
URL: http://llvm.org/viewvc/llvm-project?rev=227711&view=rev
Log:
[test] Add test for section groups and deadstrip
This adds a test that deadstrip should preserve the section group even if there
is only one reference to a function in the group.
Added:
lld/trunk/test/core/sectiongroup-deadstrip.objtxt
Added: lld/trunk/test/core/sectiongroup-deadstrip.objtxt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/core/sectiongroup-deadstrip.objtxt?rev=227711&view=auto
==============================================================================
--- lld/trunk/test/core/sectiongroup-deadstrip.objtxt (added)
+++ lld/trunk/test/core/sectiongroup-deadstrip.objtxt Sat Jan 31 23:47:02 2015
@@ -0,0 +1,92 @@
+# Test for section group members be preserved even if there is a
+# reference to only one functions in the group.
+# RUN: lld -core --dead-strip %s | FileCheck %s
+
+#
+# Test that section groups are parsed properly when there is a reference to a
+# group atom from outside a group.
+#
+
+---
+defined-atoms:
+ - name: entry
+ dead-strip: never
+ references:
+ - offset: 1
+ kind: pcrel32
+ target: d1
+ - name: f1
+ scope: global
+ type: code
+ - name: f2
+ scope: global
+ type: code
+ - name: g1
+ scope: global
+ type: code
+ - name: d1
+ scope: global
+ type: data
+ - name: g1
+ scope: global
+ type: group-comdat
+ references:
+ - kind: group-child
+ target: f1
+ - kind: group-child
+ target: f2
+ - kind: group-child
+ target: d1
+ - kind: group-child
+ target: g1
+ - name: anotherfunction
+ scope: global
+ type: data
+ references:
+ - kind: layout-before
+ target: f1
+---
+undefined-atoms:
+ - name: f1
+ can-be-null: never
+...
+
+#CHECK: defined-atoms:
+#CHECK: - name: g1
+#CHECK: ref-name: [[PARENT:[a-zA-Z\.0-9_]+]]
+#CHECK: scope: global
+#CHECK: type: group-comdat
+#CHECK: references:
+#CHECK: - kind: group-child
+#CHECK: offset: 0
+#CHECK: target: [[GCHILDONE:[a-zA-Z\.0-9_]+]]
+#CHECK: - kind: group-child
+#CHECK: offset: 0
+#CHECK: target: [[GCHILDTWO:[a-zA-Z\.0-9_]+]]
+#CHECK: - kind: group-child
+#CHECK: offset: 0
+#CHECK: target: [[GCHILDTHREE:[a-zA-Z\.0-9_]+]]
+#CHECK: - kind: group-child
+#CHECK: offset: 0
+#CHECK: target: [[GCHILDFOUR:[a-zA-Z\.0-9_]+]]
+#CHECK: - name: f1
+#CHECK: ref-name: [[GCHILDONE]]
+#CHECK: scope: global
+#CHECK: - name: f2
+#CHECK: ref-name: [[GCHILDTWO]]
+#CHECK: scope: global
+#CHECK: - name: d1
+#CHECK: ref-name: [[GCHILDTHREE]]
+#CHECK: scope: global
+#CHECK: type: data
+#CHECK: - name: g1
+#CHECK: ref-name: [[GCHILDFOUR]]
+#CHECK: scope: global
+#CHECK: - name: anotherfunction
+#CHECK: scope: global
+#CHECK: type: data
+#CHECK: references:
+#CHECK: - kind: layout-before
+#CHECK: offset: 0
+#CHECK: target: [[GCHILDONE]]
+#CHECK: ...
More information about the llvm-commits
mailing list