1// Test section manipulation via .linkonce directive.
2//
3// RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
4// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
5
6.section s1
7.linkonce
8.long 1
9
10.section s2
11.linkonce one_only
12.long 1
13
14.section s3
15.linkonce discard
16.long 1
17
18.section s4
19.linkonce same_size
20.long 1
21
22.section s5
23.linkonce same_contents
24.long 1
25
26.section s6
27.long 1
28
29.section s7
30.linkonce largest
31.long 1
32
33.section s8
34.linkonce newest
35.long 1
36
37.section .foo$bar
38.linkonce discard
39.long 1
40
41
42// CHECK: Sections [
43// CHECK:   Section {
44// CHECK:     Name: s1
45// CHECK:     Characteristics [
46// CHECK:       IMAGE_SCN_LNK_COMDAT
47// CHECK:     ]
48// CHECK:   }
49// CHECK:   Section {
50// CHECK:     Name: s2
51// CHECK:     Characteristics [
52// CHECK:       IMAGE_SCN_LNK_COMDAT
53// CHECK:     ]
54// CHECK:   }
55// CHECK:   Section {
56// CHECK:     Name: s3
57// CHECK:     Characteristics [
58// CHECK:       IMAGE_SCN_LNK_COMDAT
59// CHECK:     ]
60// CHECK:   }
61// CHECK:   Section {
62// CHECK:     Name: s4
63// CHECK:     Characteristics [
64// CHECK:       IMAGE_SCN_LNK_COMDAT
65// CHECK:     ]
66// CHECK:   }
67// CHECK:   Section {
68// CHECK:     Name: s5
69// CHECK:     Characteristics [
70// CHECK:       IMAGE_SCN_LNK_COMDAT
71// CHECK:     ]
72// CHECK:   }
73// CHECK:   Section {
74// CHECK:     Name: s6
75// CHECK:     Characteristics [
76// CHECK:     ]
77// CHECK:   }
78// CHECK:   Section {
79// CHECK:     Name: s7
80// CHECK:     Characteristics [
81// CHECK:       IMAGE_SCN_LNK_COMDAT
82// CHECK:     ]
83// CHECK:   }
84// CHECK:   Section {
85// CHECK:     Name: s8
86// CHECK:     Characteristics [
87// CHECK:       IMAGE_SCN_LNK_COMDAT
88// CHECK:     ]
89// CHECK:   }
90// CHECK: ]
91// CHECK: Symbols [
92// CHECK:   Symbol {
93// CHECK:     Name: s1
94// CHECK:     Section: s1 (4)
95// CHECK:     AuxSectionDef {
96// CHECK:       Number: 4
97// CHECK:       Selection: Any (0x2)
98// CHECK:     }
99// CHECK:   }
100// CHECK:   Symbol {
101// CHECK:     Name: s2
102// CHECK:     Section: s2 (5)
103// CHECK:     AuxSectionDef {
104// CHECK:       Number: 5
105// CHECK:       Selection: NoDuplicates (0x1)
106// CHECK:     }
107// CHECK:   }
108// CHECK:   Symbol {
109// CHECK:     Name: s3
110// CHECK:     Section: s3 (6)
111// CHECK:     AuxSectionDef {
112// CHECK:       Number: 6
113// CHECK:       Selection: Any (0x2)
114// CHECK:     }
115// CHECK:   }
116// CHECK:   Symbol {
117// CHECK:     Name: s4
118// CHECK:     Section: s4 (7)
119// CHECK:     AuxSectionDef {
120// CHECK:       Number: 7
121// CHECK:       Selection: SameSize (0x3)
122// CHECK:     }
123// CHECK:   }
124// CHECK:   Symbol {
125// CHECK:     Name: s5
126// CHECK:     Section: s5 (8)
127// CHECK:     AuxSectionDef {
128// CHECK:       Number: 8
129// CHECK:       Selection: ExactMatch (0x4)
130// CHECK:     }
131// CHECK:   }
132// CHECK:   Symbol {
133// CHECK:     Name: s6
134// CHECK:   }
135// CHECK:   Symbol {
136// CHECK:     Name: s7
137// CHECK:     Section: s7 (10)
138// CHECK:     AuxSectionDef {
139// CHECK:       Number: 10
140// CHECK:       Selection: Largest (0x6)
141// CHECK:     }
142// CHECK:   }
143// CHECK:   Symbol {
144// CHECK:     Name: s8
145// CHECK:     Section: s8 (11)
146// CHECK:     AuxSectionDef {
147// CHECK:       Number: 11
148// CHECK:       Selection: Newest (0x7)
149// CHECK:     }
150// CHECK:   }
151