blob: 116ae7728d6a0e276cb644d444cf4230d1e81e21 [file] [edit]
# REQUIRES: x86
## Test discarding .eh_frame and/or .eh_frame_hdr.
# RUN: rm -rf %t && split-file %s %t && cd %t
# RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o
# RUN: ld.lld --eh-frame-hdr -T 1.lds a.o -o out1
# RUN: llvm-readelf -Sl out1 | FileCheck %s
# RUN: ld.lld --eh-frame-hdr -T 2.lds a.o -o out2
# RUN: llvm-readelf -Sl out2 | FileCheck %s
# RUN: ld.lld --eh-frame-hdr -T 3.lds a.o -o out3
# RUN: llvm-readelf -Sl out3 | FileCheck %s --check-prefix=CHECK3
# CHECK-NOT: .eh_frame
# CHECK: .text
# CHECK-NOT: .eh_frame
# CHECK: Program Headers:
# CHECK-NOT: PT_GNU_EH_FRAME
# CHECK3-NOT: .eh_frame_hdr
# CHECK3: .eh_frame PROGBITS
# CHECK3-NOT: .eh_frame_hdr
# CHECK3: Program Headers:
# CHECK3-NOT: PT_GNU_EH_FRAME
#--- a.s
.global _start
_start:
nop
.section .dah,"ax",@progbits
.cfi_startproc
nop
.cfi_endproc
#--- 1.lds
## Regression test for https://github.com/llvm/llvm-project/pull/179089#issuecomment-3888507749
SECTIONS { /DISCARD/ : { *(.eh_frame) } }
#--- 2.lds
SECTIONS { /DISCARD/ : { *(.eh_frame .eh_frame_hdr) } }
#--- 3.lds
SECTIONS { /DISCARD/ : { *(.eh_frame_hdr) } }