1// REQUIRES: x86
2
3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
4// RUN: ld.lld %t -o %t2 -shared
5// RUN: llvm-readobj -s -section-data -r %t2 | FileCheck %s
6
7// CHECK:      Name: .data
8// CHECK-NEXT: Type: SHT_PROGBITS
9// CHECK-NEXT: Flags [
10// CHECK-NEXT:   SHF_ALLOC
11// CHECK-NEXT:   SHF_WRITE
12// CHECK-NEXT: ]
13// CHECK-NEXT: Address: 0x1000
14// CHECK-NEXT: Offset: 0x1000
15// CHECK-NEXT: Size: 16
16// CHECK-NEXT: Link: 0
17// CHECK-NEXT: Info: 0
18// CHECK-NEXT: AddressAlignment: 1
19// CHECK-NEXT: EntrySize: 0
20// CHECK-NEXT: SectionData (
21// CHECK-NEXT:   0000: 00000000 00000000 00000000 00000000
22// CHECK-NEXT: )
23
24// CHECK:      Name: foo
25// CHECK-NEXT: Type: SHT_PROGBITS
26// CHECK-NEXT:    Flags [
27// CHECK-NEXT: ]
28// CHECK-NEXT: Address: 0x0
29// CHECK-NEXT: Offset:
30// CHECK-NEXT: Size: 32
31// CHECK-NEXT: Link: 0
32// CHECK-NEXT: Info: 0
33// CHECK-NEXT: AddressAlignment: 1
34// CHECK-NEXT: EntrySize: 0
35// CHECK-NEXT: SectionData (
36// CHECK-NEXT:   0000: 00100000 00000000 00100000 00000000
37// CHECK-NEXT:   0010: 00100000 00000000 00100000 00000000
38// CHECK-NEXT: )
39
40// CHECK:      Relocations [
41// CHECK-NEXT:   Section ({{.}}) .rela.dyn {
42// CHECK-NEXT:     0x1000 R_X86_64_RELATIVE - 0x1000
43// CHECK-NEXT:     0x1008 R_X86_64_64 zed 0x0
44// CHECK-NEXT:   }
45// CHECK-NEXT: ]
46
47.data
48        .global zed
49zed:
50bar:
51        .quad bar
52        .quad zed
53
54        .section foo
55        .quad bar
56        .quad zed
57
58        .section foo
59        .quad bar
60        .quad zed
61