2 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
3 // RUN: ld.lld -O 2 %t.o -o %t.so -shared
4 // RUN: llvm-readobj -s -section-data -t %t.so | FileCheck %s
5 // RUN: ld.lld -O 1 %t.o -o %t.so -shared
6 // RUN: llvm-readobj -s -section-data -t %t.so | FileCheck --check-prefix=NOTAIL %s
7 // RUN: ld.lld -O 0 %t.o -o %t.so -shared
8 // RUN: llvm-readobj -s -section-data -t %t.so | FileCheck --check-prefix=NOMERGE %s
10 .section .rodata1,"aMS",@progbits,1
18 .section .rodata2,"aMS",@progbits,2
24 // CHECK: Name: .rodata1
25 // CHECK-NEXT: Type: SHT_PROGBITS
26 // CHECK-NEXT: Flags [
27 // CHECK-NEXT: SHF_ALLOC
28 // CHECK-NEXT: SHF_MERGE
29 // CHECK-NEXT: SHF_STRINGS
31 // CHECK-NEXT: Address: 0x20D
32 // CHECK-NEXT: Offset: 0x20D
33 // CHECK-NEXT: Size: 4
34 // CHECK-NEXT: Link: 0
35 // CHECK-NEXT: Info: 0
36 // CHECK-NEXT: AddressAlignment: 1
37 // CHECK-NEXT: EntrySize: 1
38 // CHECK-NEXT: SectionData (
39 // CHECK-NEXT: 0000: 61626300 |abc.|
42 // NOTAIL: Name: .rodata1
43 // NOTAIL-NEXT: Type: SHT_PROGBITS
44 // NOTAIL-NEXT: Flags [
45 // NOTAIL-NEXT: SHF_ALLOC
46 // NOTAIL-NEXT: SHF_MERGE
47 // NOTAIL-NEXT: SHF_STRINGS
49 // NOTAIL-NEXT: Address: 0x20D
50 // NOTAIL-NEXT: Offset: 0x20D
51 // NOTAIL-NEXT: Size: 7
52 // NOTAIL-NEXT: Link: 0
53 // NOTAIL-NEXT: Info: 0
54 // NOTAIL-NEXT: AddressAlignment: 1
55 // NOTAIL-NEXT: EntrySize: 1
56 // NOTAIL-NEXT: SectionData (
57 // NOTAIL-NEXT: 0000: 62630061 626300 |bc.abc.|
60 // NOMERGE: Name: .rodata1
61 // NOMERGE-NEXT: Type: SHT_PROGBITS
62 // NOMERGE-NEXT: Flags [
63 // NOMERGE-NEXT: SHF_ALLOC
64 // NOMERGE-NEXT: SHF_MERGE
65 // NOMERGE-NEXT: SHF_STRINGS
67 // NOMERGE-NEXT: Address: 0x20D
68 // NOMERGE-NEXT: Offset: 0x20D
69 // NOMERGE-NEXT: Size: 11
70 // NOMERGE-NEXT: Link: 0
71 // NOMERGE-NEXT: Info: 0
72 // NOMERGE-NEXT: AddressAlignment: 1
73 // NOMERGE-NEXT: EntrySize: 1
74 // NOMERGE-NEXT: SectionData (
75 // NOMERGE-NEXT: 0000: 61626300 61626300 626300 |abc.abc.bc.|
78 // CHECK: Name: .rodata2
79 // CHECK-NEXT: Type: SHT_PROGBITS
80 // CHECK-NEXT: Flags [
81 // CHECK-NEXT: SHF_ALLOC
82 // CHECK-NEXT: SHF_MERGE
83 // CHECK-NEXT: SHF_STRINGS
85 // CHECK-NEXT: Address: 0x212
86 // CHECK-NEXT: Offset: 0x212
87 // CHECK-NEXT: Size: 4
88 // CHECK-NEXT: Link: 0
89 // CHECK-NEXT: Info: 0
90 // CHECK-NEXT: AddressAlignment: 2
91 // CHECK-NEXT: EntrySize: 2
92 // CHECK-NEXT: SectionData (
93 // CHECK-NEXT: 0000: 14000000 |....|
98 // CHECK-NEXT: Value: 0x20E
101 // CHECK-NEXT: Value: 0x20D
104 // CHECK-NEXT: Value: 0x212
105 // CHECK-NEXT: Size: 0