| # REQUIRES: x86 |
| ## Test that text sections with LSDA are not folded. |
| |
| ## Test REL. |
| # RUN: llvm-mc -filetype=obj -triple=i386 %s -o %t1.o |
| # RUN: ld.lld --icf=all %t1.o -o /dev/null --print-icf-sections | FileCheck %s --implicit-check-not=removing |
| ## Test RELA. |
| # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t2.o |
| # RUN: ld.lld --icf=all %t2.o -o /dev/null --print-icf-sections | FileCheck %s --implicit-check-not=removing |
| |
| # CHECK: selected section {{.*}}.o:(.text.Z1cv) |
| # CHECK-NEXT: removing identical section {{.*}}.o:(.text.Z1dv) |
| |
| .globl _Z1av, _Z1bv, _Z1cv, _Z1dv |
| .section .text.Z1av,"ax",@progbits |
| _Z1av: |
| .cfi_startproc |
| .cfi_lsda 27, .Lexception0 |
| ret |
| .cfi_endproc |
| |
| .section .text.Z1bv,"ax",@progbits |
| _Z1bv: |
| .cfi_startproc |
| .cfi_lsda 27, .Lexception0 |
| ret |
| .cfi_endproc |
| |
| .section .text.Z1cv,"ax",@progbits |
| _Z1cv: |
| .cfi_startproc |
| .cfi_signal_frame |
| ret |
| .cfi_endproc |
| |
| .section .text.Z1dv,"ax",@progbits |
| _Z1dv: |
| .cfi_startproc |
| ret |
| .cfi_endproc |
| |
| .section .gcc_except_table,"a",@progbits |
| ## The actual content does not matter. |
| .Lexception0: |
| |
| ## .rodata.Z1[ab]v reference .text.Z1[ab]v. Dont fold them. |
| .section .rodata.Z1av,"a",@progbits |
| .long .text.Z1av - . |
| |
| .section .rodata.Z1bv,"a",@progbits |
| .long .text.Z1bv - . |