1# RUN: yaml2obj %s > %t.obj
2# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj
3# RUN: llvm-readobj --sections %t.dll | FileCheck %s
4# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj /section:.foo,rwe
5# RUN: llvm-readobj --sections %t.dll | FileCheck --check-prefix=SECTION %s
6# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj /merge:.foo=.bar
7# RUN: llvm-readobj --sections --section-data %t.dll | FileCheck --check-prefix=MERGE %s
8# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj /merge:.foo=.bar /section:.foo,rwe
9# RUN: llvm-readobj --sections %t.dll | FileCheck --check-prefix=MERGE-SECTION %s
10
11# CHECK: Name: .foo
12# CHECK: Characteristics [
13# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
14# CHECK-NEXT: IMAGE_SCN_MEM_READ
15# CHECK-NEXT: ]
16
17# CHECK: Name: .foo
18# CHECK: Characteristics [
19# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
20# CHECK-NEXT: IMAGE_SCN_MEM_READ
21# CHECK-NEXT: IMAGE_SCN_MEM_WRITE
22# CHECK-NEXT: ]
23
24# SECTION: Name: .foo
25# SECTION: Characteristics [
26# SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
27# SECTION-NEXT: IMAGE_SCN_MEM_EXECUTE
28# SECTION-NEXT: IMAGE_SCN_MEM_READ
29# SECTION-NEXT: IMAGE_SCN_MEM_WRITE
30# SECTION-NEXT: ]
31
32# SECTION: Name: .foo
33# SECTION: Characteristics [
34# SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
35# SECTION-NEXT: IMAGE_SCN_MEM_EXECUTE
36# SECTION-NEXT: IMAGE_SCN_MEM_READ
37# SECTION-NEXT: IMAGE_SCN_MEM_WRITE
38# SECTION-NEXT: ]
39
40# MERGE: Name: .bar
41# MERGE: Characteristics [
42# MERGE-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
43# MERGE-NEXT: IMAGE_SCN_MEM_READ
44# MERGE-NEXT: ]
45# MERGE-NEXT: SectionData (
46# MERGE-NEXT: 0000: 0301
47
48# MERGE: Name: .bar
49# MERGE: Characteristics [
50# MERGE-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
51# MERGE-NEXT: IMAGE_SCN_MEM_READ
52# MERGE-NEXT: IMAGE_SCN_MEM_WRITE
53# MERGE-NEXT: ]
54# MERGE-NEXT: SectionData (
55# MERGE-NEXT: 0000: 04
56
57# MERGE: Name: .foo
58# MERGE: Characteristics [
59# MERGE-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
60# MERGE-NEXT: IMAGE_SCN_MEM_READ
61# MERGE-NEXT: IMAGE_SCN_MEM_WRITE
62# MERGE-NEXT: ]
63# MERGE-NEXT: SectionData (
64# MERGE-NEXT: 0000: 02
65
66# MERGE-SECTION: Name: .bar
67# MERGE-SECTION: Characteristics [
68# MERGE-SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
69# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_READ
70# MERGE-SECTION-NEXT: ]
71
72# MERGE-SECTION: Name: .bar
73# MERGE-SECTION: Characteristics [
74# MERGE-SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
75# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_READ
76# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_WRITE
77# MERGE-SECTION-NEXT: ]
78
79# MERGE-SECTION: Name: .foo
80# MERGE-SECTION: Characteristics [
81# MERGE-SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
82# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_EXECUTE
83# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_READ
84# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_WRITE
85# MERGE-SECTION-NEXT: ]
86
87--- !COFF
88header:
89  Machine:         IMAGE_FILE_MACHINE_AMD64
90  Characteristics: [  ]
91sections:
92  - Name:            .foo
93    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
94    Alignment:       1
95    SectionData:     01
96  - Name:            .foo
97    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
98    Alignment:       1
99    SectionData:     02
100  - Name:            .bar
101    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
102    Alignment:       1
103    SectionData:     03
104  - Name:            .bar
105    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
106    Alignment:       1
107    SectionData:     04
108symbols:
109...
110