diff options
-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 |