# REQUIRES: x86
# RUN: split-file %s %t
# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a.s -o %t/a.o
## Discard .plt, .iplt, and .got.plt
# RUN: ld.lld -shared -T %t/t %t/a.o -o %t/a
# RUN: llvm-readelf -S -d %t/a > %t/readelf.txt
# RUN: FileCheck %s --input-file %t/readelf.txt
# RUN: FileCheck %s --input-file %t/readelf.txt --check-prefix=NEG
# CHECK: [Nr] Name Type Address Off Size ES Flg Lk Inf Al
# CHECK: ] .rela.plt RELA [[#%x,]] [[#%x,]] 000018 18 A 1 0 8
# CHECK: (PLTGOT) 0x0
# CHECK: (PLTREL) RELA
# NEG-NOT: ] .plt
# NEG-NOT: ] .iplt
# NEG-NOT: ] .got.plt
#--- a.s
call foo
call ifunc
.type ifunc, @gnu_indirect_function
.hidden ifunc
ifunc:
ret
.data
.quad ifunc
#--- t
SECTIONS {
.text : { *(.text) }
/DISCARD/ : { *(.plt .iplt .got.plt) }
}