MC: Fix associative sections on COFF
[oota-llvm.git] / test / MC / COFF / section-comdat.s
1 // RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
2 // RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
3
4 .section assocSec, "dr", discard, "assocSym"
5 .long 1
6
7 .section secName, "dr", discard, "Symbol1"
8 .globl Symbol1
9 Symbol1:
10 .long 1
11
12 .section secName, "dr", one_only, "Symbol2"
13 .globl Symbol2
14 Symbol2:
15 .long 1
16
17 .section SecName, "dr", same_size, "Symbol3"
18 .globl Symbol3
19 Symbol3:
20 .long 1
21
22 .section SecName, "dr", same_contents, "Symbol4"
23 .globl Symbol4
24 Symbol4:
25 .long 1
26
27 .section SecName, "dr", associative, "assocSym"
28 .globl Symbol5
29 Symbol5:
30 .long 1
31
32 .section SecName, "dr", largest, "Symbol6"
33 .globl Symbol6
34 Symbol6:
35 .long 1
36
37 .section SecName, "dr", newest, "Symbol7"
38 .globl Symbol7
39 Symbol7:
40 .long 1
41
42 .section assocSec, "dr", associative, "assocSym"
43 .globl Symbol8
44 Symbol8:
45 .long 1
46
47 // CHECK: Sections [
48 // CHECK:   Section {
49 // CHECK:     Number: 4
50 // CHECK:     Name: assocSec
51 // CHECK:     Characteristics [
52 // CHECK:       IMAGE_SCN_LNK_COMDAT
53 // CHECK:     ]
54 // CHECK:   }
55 // CHECK:   Section {
56 // CHECK:     Number: 5
57 // CHECK:     Name: secName
58 // CHECK:     Characteristics [
59 // CHECK:       IMAGE_SCN_LNK_COMDAT
60 // CHECK:     ]
61 // CHECK:   }
62 // CHECK:   Section {
63 // CHECK:     Number: 6
64 // CHECK:     Name: secName
65 // CHECK:     Characteristics [
66 // CHECK:       IMAGE_SCN_LNK_COMDAT
67 // CHECK:     ]
68 // CHECK:   }
69 // CHECK:   Section {
70 // CHECK:     Number: 7
71 // CHECK:     Name: SecName
72 // CHECK:     Characteristics [
73 // CHECK:       IMAGE_SCN_LNK_COMDAT
74 // CHECK:     ]
75 // CHECK:   }
76 // CHECK:   Section {
77 // CHECK:     Number: 8
78 // CHECK:     Name: SecName
79 // CHECK:     Characteristics [
80 // CHECK:       IMAGE_SCN_LNK_COMDAT
81 // CHECK:     ]
82 // CHECK:   }
83 // CHECK:   Section {
84 // CHECK:     Number: 9
85 // CHECK:     Name: SecName
86 // CHECK:     Characteristics [
87 // CHECK:       IMAGE_SCN_LNK_COMDAT
88 // CHECK:     ]
89 // CHECK:   }
90 // CHECK:   Section {
91 // CHECK:     Number: 10
92 // CHECK:     Name: SecName
93 // CHECK:     Characteristics [
94 // CHECK:       IMAGE_SCN_LNK_COMDAT
95 // CHECK:     ]
96 // CHECK:   }
97 // CHECK:   Section {
98 // CHECK:     Number: 11
99 // CHECK:     Name: SecName
100 // CHECK:     Characteristics [
101 // CHECK:       IMAGE_SCN_LNK_COMDAT
102 // CHECK:     ]
103 // CHECK:   }
104 // CHECK: ]
105 // CHECK: Symbols [
106 // CHECK:   Symbol {
107 // CHECK:     Name: assocSec
108 // CHECK:     Section: assocSec (4)
109 // CHECK:     AuxSectionDef {
110 // CHECK:       Selection: Any
111 // CHECK:     }
112 // CHECK:   }
113 // CHECK:   Symbol {
114 // CHECK:     Name: assocSym
115 // CHECK:     Section: assocSec
116 // CHECK:   }
117 // CHECK:   Symbol {
118 // CHECK:     Name: secName
119 // CHECK:     Section: secName (5)
120 // CHECK:     AuxSectionDef {
121 // CHECK:       Selection: Any
122 // CHECK:     }
123 // CHECK:   }
124 // CHECK:   Symbol {
125 // CHECK:     Name: Symbol1
126 // CHECK:     Section: secName (5)
127 // CHECK:   }
128 // CHECK:   Symbol {
129 // CHECK:     Name: secName
130 // CHECK:     Section: secName (6)
131 // CHECK:     AuxSectionDef {
132 // CHECK:       Selection: NoDuplicates
133 // CHECK:     }
134 // CHECK:   }
135 // CHECK:   Symbol {
136 // CHECK:     Name: Symbol2
137 // CHECK:     Section: secName (6)
138 // CHECK:   }
139 // CHECK:   Symbol {
140 // CHECK:     Name: SecName
141 // CHECK:     Section: SecName (7)
142 // CHECK:     AuxSectionDef {
143 // CHECK:       Selection: SameSize
144 // CHECK:     }
145 // CHECK:   }
146 // CHECK:   Symbol {
147 // CHECK:     Name: Symbol3
148 // CHECK:     Section: SecName (7)
149 // CHECK:   }
150 // CHECK:   Symbol {
151 // CHECK:     Name: SecName
152 // CHECK:     Section: SecName (8)
153 // CHECK:     AuxSymbolCount: 1
154 // CHECK:     AuxSectionDef {
155 // CHECK:       Selection: ExactMatch
156 // CHECK:     }
157 // CHECK:   }
158 // CHECK:   Symbol {
159 // CHECK:     Name: Symbol4
160 // CHECK:     Section: SecName (8)
161 // CHECK:   }
162 // CHECK:   Symbol {
163 // CHECK:     Name: SecName
164 // CHECK:     Section: SecName (9)
165 // CHECK:     AuxSectionDef {
166 // CHECK:       Selection: Associative
167 // CHECK:       AssocSection: assocSec (4)
168 // CHECK:     }
169 // CHECK:   }
170 // CHECK:   Symbol {
171 // CHECK:     Name: SecName
172 // CHECK:     Section: SecName (10)
173 // CHECK:     AuxSectionDef {
174 // CHECK:       Selection: Largest
175 // CHECK:     }
176 // CHECK:   }
177 // CHECK:   Symbol {
178 // CHECK:     Name: Symbol6
179 // CHECK:     Section: SecName (10)
180 // CHECK:   }
181 // CHECK:   Symbol {
182 // CHECK:     Name: SecName
183 // CHECK:     Section: SecName (11)
184 // CHECK:     AuxSectionDef {
185 // CHECK:       Selection: Newest (0x7)
186 // CHECK:     }
187 // CHECK:   }
188 // CHECK:   Symbol {
189 // CHECK:     Name: Symbol7
190 // CHECK:     Section: SecName (11)
191 // CHECK:   }
192 // CHECK:   Symbol {
193 // CHECK:     Name: assocSec
194 // CHECK:     Section: assocSec (12)
195 // CHECK:     AuxSectionDef {
196 // CHECK:       Selection: Associative (0x5)
197 // CHECK:       AssocSection: assocSec (4)
198 // CHECK:     }
199 // CHECK:   }
200 // CHECK:   Symbol {
201 // CHECK:     Name: Symbol5
202 // CHECK:     Section: SecName (9)
203 // CHECK:   }
204 // CHECK:   Symbol {
205 // CHECK:     Name: Symbol8
206 // CHECK:     Section: assocSec (12)
207 // CHECK:   }
208 // CHECK: ]