brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · a4b15f2 Raw
107 lines · plain
1# REQUIRES: x862# RUN: rm -rf %t; split-file %s %t3# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/test.s -o %t/test.o4# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/more-foo.s -o %t/more-foo.o5# RUN: %lld -dylib %t/test.o %t/more-foo.o -o %t/test6# RUN: llvm-objdump --macho --section="__TEXT,__cstring" %t/test | \7# RUN:   FileCheck %s --check-prefix=STR --implicit-check-not foo --implicit-check-not bar8# RUN: llvm-objdump --macho --section="__DATA,ptrs" --syms %t/test | FileCheck %s9# RUN: llvm-readobj --section-headers %t/test | FileCheck %s --check-prefix=HEADER10 11## Make sure we only have 3 deduplicated strings in __cstring.12# STR: Contents of (__TEXT,__cstring) section13# STR: {{[[:xdigit:]]+}} foo14# STR: {{[[:xdigit:]]+}} barbaz15# STR: {{[[:xdigit:]]+}} {{$}}16 17## Make sure both symbol and section relocations point to the right thing.18# CHECK:      Contents of (__DATA,ptrs) section19# CHECK-NEXT: __TEXT:__cstring:foo20# CHECK-NEXT: __TEXT:__cstring:foo21# CHECK-NEXT: __TEXT:__cstring:foo22# CHECK-NEXT: __TEXT:__cstring:foo23# CHECK-NEXT: __TEXT:__cstring:foo24# CHECK-NEXT: __TEXT:__cstring:foo25# CHECK-NEXT: __TEXT:__cstring:barbaz26# CHECK-NEXT: __TEXT:__cstring:baz27# CHECK-NEXT: __TEXT:__cstring:barbaz28# CHECK-NEXT: __TEXT:__cstring:baz29# CHECK-NEXT: __TEXT:__cstring:{{$}}30# CHECK-NEXT: __TEXT:__cstring:{{$}}31 32## Make sure the symbol addresses are correct too.33# CHECK:     SYMBOL TABLE:34# CHECK-DAG: [[#%.16x,FOO:]]  l     O __TEXT,__cstring _local_foo135# CHECK-DAG: [[#FOO]]         l     O __TEXT,__cstring _local_foo236# CHECK-DAG: [[#FOO]]         g     O __TEXT,__cstring _globl_foo137# CHECK-DAG: [[#FOO]]         g     O __TEXT,__cstring _globl_foo238# CHECK-DAG: [[#%.16x,BAR:]]  l     O __TEXT,__cstring _bar139# CHECK-DAG: [[#BAR]]         l     O __TEXT,__cstring _bar240# CHECK-DAG: [[#%.16x,ZERO:]] l     O __TEXT,__cstring _zero141# CHECK-DAG: [[#ZERO]]        l     O __TEXT,__cstring _zero242 43## Make sure we set the right alignment and flags.44# HEADER:        Name: __cstring45# HEADER-NEXT:   Segment: __TEXT46# HEADER-NEXT:   Address:47# HEADER-NEXT:   Size:48# HEADER-NEXT:   Offset:49# HEADER-NEXT:   Alignment: 450# HEADER-NEXT:   RelocationOffset:51# HEADER-NEXT:   RelocationCount: 052# HEADER-NEXT:   Type: CStringLiterals53# HEADER-NEXT:   Attributes [ (0x0)54# HEADER-NEXT:   ]55# HEADER-NEXT:   Reserved1: 0x056# HEADER-NEXT:   Reserved2: 0x057# HEADER-NEXT:   Reserved3: 0x058 59#--- test.s60.cstring61.p2align 262_local_foo1:63  .asciz "foo"64_local_foo2:65  .asciz "foo"66L_.foo1:67  .asciz "foo"68L_.foo2:69  .asciz "foo"70 71_bar1:72  .ascii "bar"73_baz1:74  .asciz "baz"75_bar2:76  .ascii "bar"77_baz2:78  .asciz "baz"79 80_zero1:81  .asciz ""82_zero2:83  .asciz ""84 85.section __DATA,ptrs,literal_pointers86.quad L_.foo187.quad L_.foo288.quad _local_foo189.quad _local_foo290.quad _globl_foo191.quad _globl_foo292.quad _bar193.quad _baz194.quad _bar295.quad _baz296.quad _zero197.quad _zero298 99#--- more-foo.s100.globl _globl_foo1, _globl_foo2101.cstring102.p2align 4103_globl_foo1:104  .asciz "foo"105_globl_foo2:106  .asciz "foo"107