summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2018-06-25 15:27:09 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2018-06-25 15:27:09 +0000
commit32287ad897690ad37bed7a13a16174587ae29a16 (patch)
tree0501b2a7dbaa525255ed99fe73fb1b3cdaafcf42
parent869949230475d243904d4d528b645d009aad3304 (diff)
downloadbcm5719-llvm-32287ad897690ad37bed7a13a16174587ae29a16.tar.gz
bcm5719-llvm-32287ad897690ad37bed7a13a16174587ae29a16.zip
[ELF] - ICF: add one more test case #3.
ICF is able to merge sections which relocations referring regular input sections or mergeable sections, so it handles InputSection and MergeInputSection cases. The following "return false" line which is executed in case of another type of the sections is uncovered by our test cases: https://github.com/llvm-mirror/lld/blob/master/ELF/ICF.cpp#L285 Patch fixes code coverage for this place. llvm-svn: 335482
-rw-r--r--lld/test/ELF/icf16.s23
1 files changed, 23 insertions, 0 deletions
diff --git a/lld/test/ELF/icf16.s b/lld/test/ELF/icf16.s
new file mode 100644
index 00000000000..ca2d1be05e8
--- /dev/null
+++ b/lld/test/ELF/icf16.s
@@ -0,0 +1,23 @@
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1
+# RUN: ld.lld -shared -z notext %t1 -o %t --icf=all --print-icf-sections 2>&1 | FileCheck -allow-empty %s
+
+## ICF is able to merge sections which relocations referring regular input sections
+## or mergeable sections. .eh_frame is represented with a different kind of section,
+## here we check that ICF code is able to handle and will not merge sections which
+## relocations referring .eh_frame.
+
+# CHECK-NOT: selected
+
+.section ".eh_frame", "a", @progbits
+.globl foo
+foo:
+ .quad 0
+.globl bar
+bar:
+ .quad 0
+
+.section .text.foo, "ax"
+.quad foo
+
+.section .text.bar, "ax"
+.quad bar
OpenPOWER on IntegriCloud