# 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) } }