brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 8941e8d Raw
66 lines · plain
1# REQUIRES: x862## Test that -r keeps local symbols which are used in relocations even when3## --discard-{locals,all} is given.4 5# RUN: llvm-mc -filetype=obj -triple=x86_64 -save-temp-labels %s -o %t.o6 7# RUN: ld.lld -r --discard-locals %t.o -o %tlocal.ro8# RUN: llvm-readelf -s %tlocal.ro | FileCheck --check-prefix=DISCARD-LOCALS %s9# RUN: llvm-readobj -r %tlocal.ro | FileCheck --check-prefix=REL %s10 11# RUN: ld.lld -r --discard-all %t.o -o %tall.ro12# RUN: llvm-readelf -s %tall.ro | FileCheck --check-prefix=DISCARD-ALL %s13# RUN: llvm-readobj -r %tall.ro | FileCheck --check-prefix=REL %s14 15## --discard-locals removes unused local symbols which start with ".L"16# DISCARD-LOCALS:    0: {{0+}} 0 NOTYPE  LOCAL  DEFAULT UND17# DISCARD-LOCALS-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} .Lused18# DISCARD-LOCALS-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} used19# DISCARD-LOCALS-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} .L.str20# DISCARD-LOCALS-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} unused21# DISCARD-LOCALS-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} unused_gc22# DISCARD-LOCALS-NEXT:           SECTION LOCAL  DEFAULT {{.*}} .text23# DISCARD-LOCALS-NEXT:           SECTION LOCAL  DEFAULT {{.*}} text24# DISCARD-LOCALS-NEXT:           SECTION LOCAL  DEFAULT {{.*}} gc25# DISCARD-LOCALS-NEXT:           SECTION LOCAL  DEFAULT {{.*}} .rodata.str1.126# DISCARD-LOCALS-NEXT:           NOTYPE  GLOBAL DEFAULT {{.*}} _start27 28## --discard-all removes all unused regular local symbols.29# DISCARD-ALL:    0: {{0+}} 0 NOTYPE  LOCAL  DEFAULT UND30# DISCARD-ALL-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} .Lused31# DISCARD-ALL-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} used32# DISCARD-ALL-NEXT:           NOTYPE  LOCAL  DEFAULT {{.*}} .L.str33# DISCARD-ALL-NEXT:           SECTION LOCAL  DEFAULT {{.*}} .text34# DISCARD-ALL-NEXT:           SECTION LOCAL  DEFAULT {{.*}} text35# DISCARD-ALL-NEXT:           SECTION LOCAL  DEFAULT {{.*}} gc36# DISCARD-ALL-NEXT:           SECTION LOCAL  DEFAULT {{.*}} .rodata.str1.137# DISCARD-ALL-NEXT:           NOTYPE  GLOBAL DEFAULT {{.*}} _start38 39# REL:      .rela.text {40# REL-NEXT:   R_X86_64_PLT32 text 0xFFFFFFFFFFFFFFFC41# REL-NEXT:   R_X86_64_PLT32 .Lused 0xFFFFFFFFFFFFFFFC42# REL-NEXT:   R_X86_64_PLT32 used 0xFFFFFFFFFFFFFFFC43# REL-NEXT:   R_X86_64_PC32 .L.str 0xFFFFFFFFFFFFFFFC44# REL-NEXT: }45 46.globl _start47_start:48  call text@plt49  jmp .Lused@plt50  call used@plt51  leaq .L.str(%rip), %rdi52 53.section text,"ax"54.Lunused:55.Lused:56unused:57used:58 59.section gc,"ax"60.Lunused_gc:61unused_gc:62  ret63 64.section .rodata.str1.1,"aMS",@progbits,165.L.str: .asciz "a"66