forked from OSchip/llvm-project
38 lines
825 B
ArmAsm
38 lines
825 B
ArmAsm
# 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) }
|
|
}
|