126 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o3# RUN: %lld -o %t %t.o4# RUN: llvm-readobj --section-headers --macho-segment %t | FileCheck %s5 6## Check that __bss takes up zero file size, is at file offset zero, and appears7## at the end of its segment. Also check that __tbss is placed immediately8## before it.9## Zerofill sections in other segments (i.e. not __DATA) should also be placed10## at the end.11 12# CHECK: Index: 113# CHECK-NEXT: Name: __data14# CHECK-NEXT: Segment: __DATA15# CHECK-NEXT: Address:16# CHECK-NEXT: Size: 0x817# CHECK-NEXT: Offset: 409618# CHECK-NEXT: Alignment: 019# CHECK-NEXT: RelocationOffset: 0x020# CHECK-NEXT: RelocationCount: 021# CHECK-NEXT: Type: Regular (0x0)22# CHECK-NEXT: Attributes [ (0x0)23# CHECK-NEXT: ]24# CHECK-NEXT: Reserved1: 0x025# CHECK-NEXT: Reserved2: 0x026# CHECK-NEXT: Reserved3: 0x027 28# CHECK: Index: 229# CHECK-NEXT: Name: __thread_bss30# CHECK-NEXT: Segment: __DATA31# CHECK-NEXT: Address:32# CHECK-NEXT: Size: 0x433# CHECK-NEXT: Offset: 034# CHECK-NEXT: Alignment: 035# CHECK-NEXT: RelocationOffset: 0x036# CHECK-NEXT: RelocationCount: 037# CHECK-NEXT: Type: ThreadLocalZerofill (0x12)38# CHECK-NEXT: Attributes [ (0x0)39# CHECK-NEXT: ]40# CHECK-NEXT: Reserved1: 0x041# CHECK-NEXT: Reserved2: 0x042# CHECK-NEXT: Reserved3: 0x043 44# CHECK: Index: 345# CHECK-NEXT: Name: __bss46# CHECK-NEXT: Segment: __DATA47# CHECK-NEXT: Address:48# CHECK-NEXT: Size: 0x1000049# CHECK-NEXT: Offset: 050# CHECK-NEXT: Alignment: 051# CHECK-NEXT: RelocationOffset: 0x052# CHECK-NEXT: RelocationCount: 053# CHECK-NEXT: Type: ZeroFill (0x1)54# CHECK-NEXT: Attributes [ (0x0)55# CHECK-NEXT: ]56# CHECK-NEXT: Reserved1: 0x057# CHECK-NEXT: Reserved2: 0x058# CHECK-NEXT: Reserved3: 0x059 60# CHECK: Index: 461# CHECK-NEXT: Name: foo62# CHECK-NEXT: Segment: FOO63# CHECK-NEXT: Address:64# CHECK-NEXT: Size: 0x865# CHECK-NEXT: Offset: 819266# CHECK-NEXT: Alignment: 067# CHECK-NEXT: RelocationOffset: 0x068# CHECK-NEXT: RelocationCount: 069# CHECK-NEXT: Type: Regular (0x0)70# CHECK-NEXT: Attributes [ (0x0)71# CHECK-NEXT: ]72# CHECK-NEXT: Reserved1: 0x073# CHECK-NEXT: Reserved2: 0x074# CHECK-NEXT: Reserved3: 0x075 76# CHECK: Index: 577# CHECK-NEXT: Name: bss78# CHECK-NEXT: Segment: FOO79# CHECK-NEXT: Address:80# CHECK-NEXT: Size: 0x881# CHECK-NEXT: Offset: 082# CHECK-NEXT: Alignment: 083# CHECK-NEXT: RelocationOffset: 0x084# CHECK-NEXT: RelocationCount: 085# CHECK-NEXT: Type: ZeroFill (0x1)86# CHECK-NEXT: Attributes [ (0x0)87# CHECK-NEXT: ]88# CHECK-NEXT: Reserved1: 0x089# CHECK-NEXT: Reserved2: 0x090# CHECK-NEXT: Reserved3: 0x091 92# CHECK: Name: __DATA93# CHECK-NEXT: Size:94# CHECK-NEXT: vmaddr:95# CHECK-NEXT: vmsize: 0x1100096# CHECK-NEXT: fileoff:97# CHECK-NEXT: filesize: 409698 99# CHECK: Name: FOO100# CHECK-NEXT: Size:101# CHECK-NEXT: vmaddr:102# CHECK-NEXT: vmsize: 0x9000103# CHECK-NEXT: fileoff:104# CHECK-NEXT: filesize: 4096105 106.globl _main107 108.text109_main:110 movq $0, %rax111 retq112 113.bss114.zero 0x8000115 116.tbss _foo, 4117.zero 0x8000118 119.data120.quad 0x1234121 122.zerofill FOO,bss,_zero_foo,0x8000123 124.section FOO,foo125.quad 123126