brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · a8bf5de Raw
74 lines · plain
1# REQUIRES: x862 3# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o4# RUN: %lld -arch x86_64 -lSystem -o %t.out %t.o5# RUN: llvm-objdump --macho --section-headers %t.out > %t.txt6# RUN: llvm-otool -vs __DATA __objc_selrefs %t.out >> %t.txt7# RUN: llvm-otool -vs __TEXT __objc_stubs %t.out >> %t.txt8# RUN: FileCheck %s < %t.txt9# RUN: %no-fatal-warnings-lld -arch x86_64 -lSystem -o %t.out %t.o -objc_stubs_small 2>&1 | FileCheck %s --check-prefix=WARNING10 11# WARNING: warning: -objc_stubs_small is not yet implemented, defaulting to -objc_stubs_fast12 13# RUN: %lld -arch x86_64 -lSystem -o %t-icfsafe.out --icf=safe %t.o14# RUN: llvm-otool -vs __DATA __objc_selrefs %t-icfsafe.out | FileCheck %s --check-prefix=ICF15# RUN: %lld -arch x86_64 -lSystem -o %t-icfall.out --icf=all %t.o16# RUN: llvm-otool -vs __DATA __objc_selrefs %t-icfall.out | FileCheck %s --check-prefix=ICF17 18# CHECK: Sections:19# CHECK: __got            {{[0-9a-f]*}} [[#%x, GOTSTART:]] DATA20# CHECK: __objc_selrefs   {{[0-9a-f]*}} [[#%x, SELSTART:]] DATA21 22# CHECK: Contents of (__DATA,__objc_selrefs) section23 24# CHECK-NEXT: {{[0-9a-f]*}}  __TEXT:__objc_methname:foo25# CHECK-NEXT: {{[0-9a-f]*}}  __TEXT:__objc_methname:bar26# CHECK-NEXT: [[#%x, FOOSELREF:]]  __TEXT:__objc_methname:foo27# CHECK-NEXT: [[#%x, LENGTHSELREF:]]  __TEXT:__objc_methname:length28 29# ICF: Contents of (__DATA,__objc_selrefs) section30 31# ICF-NEXT: {{[0-9a-f]*}}  __TEXT:__objc_methname:foo32# ICF-NEXT: {{[0-9a-f]*}}  __TEXT:__objc_methname:bar33# ICF-NEXT: {{[0-9a-f]*}}  __TEXT:__objc_methname:length34# ICF-EMPTY:35 36# CHECK: Contents of (__TEXT,__objc_stubs) section37 38# CHECK-NEXT: _objc_msgSend$foo:39# CHECK-NEXT: [[#%x, PC1:]]40# CHECK-SAME: movq    0x[[#%x, FOOSELREF - PC1 - 7]](%rip), %rsi41# CHECK-NEXT: [[#%x, PC2:]]42# CHECK-SAME: jmpq    *0x[[#%x, GOTSTART - PC2 - 6]](%rip)43 44# CHECK-NEXT: _objc_msgSend$length:45# CHECK-NEXT: [[#%x, PC3:]]46# CHECK-SAME: movq    0x[[#%x, LENGTHSELREF - PC3 - 7]](%rip), %rsi47# CHECK-NEXT: [[#%x, PC4:]]48# CHECK-SAME: jmpq    *0x[[#%x, GOTSTART - PC4 - 6]](%rip)49 50# CHECK-EMPTY:51 52.section  __TEXT,__objc_methname,cstring_literals53lselref1:54  .asciz  "foo"55lselref2:56  .asciz  "bar"57 58.section  __DATA,__objc_selrefs,literal_pointers,no_dead_strip59.p2align  360.quad lselref161.quad lselref262 63.text64.globl _objc_msgSend65_objc_msgSend:66  ret67 68.globl _main69_main:70  callq  _objc_msgSend$length71  callq  _objc_msgSend$foo72  callq  _objc_msgSend$foo73  ret74