diff options
author | George Rimar <grimar@accesssoftek.com> | 2018-06-25 15:27:09 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2018-06-25 15:27:09 +0000 |
commit | 32287ad897690ad37bed7a13a16174587ae29a16 (patch) | |
tree | 0501b2a7dbaa525255ed99fe73fb1b3cdaafcf42 | |
parent | 869949230475d243904d4d528b645d009aad3304 (diff) | |
download | bcm5719-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.s | 23 |
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 |