1; This file tests the codegen of initialized and common variables in AIX
2; assembly and XCOFF object files.
3
4; RUN: llc -mtriple powerpc-ibm-aix-xcoff -data-sections=false < %s | FileCheck --check-prefixes=CHECK,CHECK32 %s
5; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -data-sections=false < %s | FileCheck --check-prefixes=CHECK,CHECK64 %s
6
7; RUN: llc -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s
8; RUN: llvm-readobj --section-headers --file-header %t.o | \
9; RUN: FileCheck --check-prefix=OBJ %s
10; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
11
12; RUN: not --crash llc -mtriple powerpc64-ibm-aix-xcoff -data-sections=false -filetype=obj < %s 2>&1 | \
13; RUN: FileCheck --check-prefix=XCOFF64 %s
14; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
15
16@ivar = local_unnamed_addr global i32 35, align 4
17@llvar = local_unnamed_addr global i64 36, align 8
18@svar = local_unnamed_addr global i16 37, align 2
19@fvar = local_unnamed_addr global float 8.000000e+02, align 4
20@dvar = local_unnamed_addr global double 9.000000e+02, align 8
21@over_aligned = local_unnamed_addr global double 9.000000e+02, align 32
22@chrarray = local_unnamed_addr global [4 x i8] c"abcd", align 1
23@dblarr = local_unnamed_addr global [4 x double] [double 1.000000e+00, double 2.000000e+00, double 3.000000e+00, double 4.000000e+00], align 8
24@d_0 = global double 0.000000e+00, align 8
25@s_0 = global i16 0, align 2
26@f_0 = global float 0.000000e+00, align 4
27
28%struct.anon = type <{ i32, double }>
29@astruct = global [1 x %struct.anon] [%struct.anon <{ i32 1, double 7.000000e+00 }>], align 1
30
31%struct.anon2 = type { double, i32 }
32@bstruct = global [1 x %struct.anon2] [%struct.anon2 { double 7.000000e+00 , i32 1}], align 8
33
34@a = common global i32 0, align 4
35@b = common global i64 0, align 8
36@c = common global i16 0, align 2
37
38@d = common local_unnamed_addr global double 0.000000e+00, align 8
39@f = common local_unnamed_addr global float 0.000000e+00, align 4
40
41@over_aligned_comm = common local_unnamed_addr global double 0.000000e+00, align 32
42
43@array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1
44
45; CHECK-NOT: .toc
46
47; CHECK:      .csect .text[PR],2
48; CHECK-NEXT:  .file
49
50; CHECK:      .csect .data[RW],5
51; CHECK-NEXT: .globl  ivar
52; CHECK-NEXT: .align  2
53; CHECK-NEXT: ivar:
54; CHECK-NEXT: .vbyte	4, 35
55
56; CHECK:      .globl  llvar
57; CHECK-NEXT: .align  3
58; CHECK-NEXT: llvar:
59; CHECK32-NEXT: .vbyte	4, 0
60; CHECK32-NEXT: .vbyte	4, 36
61; CHECK64-NEXT: .vbyte	8, 36
62
63; CHECK:      .globl  svar
64; CHECK-NEXT: .align  1
65; CHECK-NEXT: svar:
66; CHECK-NEXT: .vbyte	2, 37
67
68; CHECK:      .globl  fvar
69; CHECK-NEXT: .align  2
70; CHECK-NEXT: fvar:
71; CHECK-NEXT: .vbyte	4, 0x44480000
72
73; CHECK:      .globl  dvar
74; CHECK-NEXT: .align  3
75; CHECK-NEXT: dvar:
76; CHECK32-NEXT: .vbyte	4, 1082925056
77; CHECK32-NEXT: .vbyte	4, 0
78; CHECK64-NEXT: .vbyte	8, 0x408c200000000000
79
80; CHECK:      .globl  over_aligned
81; CHECK-NEXT: .align  5
82; CHECK-NEXT: over_aligned:
83; CHECK32-NEXT: .vbyte	4, 1082925056
84; CHECK32-NEXT: .vbyte	4, 0
85; CHECK64-NEXT: .vbyte	8, 0x408c200000000000
86
87; CHECK:      .globl  chrarray
88; CHECK-NEXT: chrarray:
89; CHECK-NEXT: .byte   "abcd"
90
91; CHECK:      .globl  dblarr
92; CHECK-NEXT: .align  3
93; CHECK-NEXT: dblarr:
94; CHECK32-NEXT: .vbyte	4, 1072693248
95; CHECK32-NEXT: .vbyte	4, 0
96; CHECK64-NEXT: .vbyte	8, 0x3ff0000000000000
97; CHECK32-NEXT: .vbyte	4, 1073741824
98; CHECK32-NEXT: .vbyte	4, 0
99; CHECK64-NEXT: .vbyte	8, 0x4000000000000000
100; CHECK32-NEXT: .vbyte	4, 1074266112
101; CHECK32-NEXT: .vbyte	4, 0
102; CHECK64-NEXT: .vbyte	8, 0x4008000000000000
103; CHECK32-NEXT: .vbyte	4, 1074790400
104; CHECK32-NEXT: .vbyte	4, 0
105; CHECK64-NEXT: .vbyte	8, 0x4010000000000000
106
107; CHECK:      .globl  d_0
108; CHECK-NEXT: .align 3
109; CHECK-NEXT: d_0:
110; CHECK32-NEXT: .vbyte	4, 0
111; CHECK32-NEXT: .vbyte	4, 0
112; CHECK64-NEXT: .vbyte	8, 0
113
114; CHECK:      .globl  s_0
115; CHECK-NEXT: .align  1
116; CHECK-NEXT: s_0:
117; CHECK-NEXT: .vbyte	2, 0
118
119; CHECK:      .globl f_0
120; CHECK-NEXT: .align 2
121; CHECK-NEXT: f_0:
122; CHECK-NEXT: .vbyte	4, 0
123
124; CHECK:            .globl astruct
125; CHECK-NEXT:   astruct:
126; CHECK-NEXT:       .vbyte	4, 1
127; CHECK32-NEXT:     .vbyte	4, 1075576832
128; CHECK32-NEXT:     .vbyte	4, 0
129; CHECK64-NEXT:     .vbyte	8, 0x401c000000000000
130
131; CHECK:            .globl bstruct
132; CHECK-NEXT:       .align 3
133; CHECK-NEXT:   bstruct:
134; CHECK32-NEXT:     .vbyte	4, 1075576832
135; CHECK32-NEXT:     .vbyte	4, 0
136; CHECK64-NEXT:     .vbyte	8, 0x401c000000000000
137; CHECK-NEXT:       .vbyte	4, 1
138; CHECK-NEXT:       .space	4
139
140
141; CHECK-NEXT: .comm   a[RW],4,2
142; CHECK-NEXT: .comm   b[RW],8,3
143; CHECK-NEXT: .comm   c[RW],2,1
144; CHECK-NEXT: .comm   d[RW],8,3
145; CHECK-NEXT: .comm   f[RW],4,2
146; CHECK-NEXT: .comm   over_aligned_comm[RW],8,5
147; CHECK-NEXT: .comm   array[RW],33,0
148
149; OBJ:      File: {{.*}}aix-xcoff-data.ll.tmp.o
150; OBJ-NEXT: Format: aixcoff-rs6000
151; OBJ-NEXT: Arch: powerpc
152; OBJ-NEXT: AddressSize: 32bit
153; OBJ-NEXT: FileHeader {
154; OBJ-NEXT:   Magic: 0x1DF
155; OBJ-NEXT:   NumberOfSections: 3
156; OBJ-NEXT:   TimeStamp:
157; OBJ-NEXT:   SymbolTableOffset: 0x10C
158; OBJ-NEXT:   SymbolTableEntries: 45
159; OBJ-NEXT:   OptionalHeaderSize: 0x0
160; OBJ-NEXT:   Flags: 0x0
161; OBJ-NEXT: }
162
163; OBJ:      Sections [
164; OBJ:        Section {
165; OBJ-NEXT:     Index: [[#OBJ_INDX:]]
166; OBJ-NEXT:     Name: .text
167; OBJ-NEXT:     PhysicalAddress: 0x0
168; OBJ-NEXT:     VirtualAddress: 0x0
169; OBJ-NEXT:     Size: 0x0
170; OBJ-NEXT:     RawDataOffset: 0x8C
171; OBJ-NEXT:     RelocationPointer: 0x0
172; OBJ-NEXT:     LineNumberPointer: 0x0
173; OBJ-NEXT:     NumberOfRelocations: 0
174; OBJ-NEXT:     NumberOfLineNumbers: 0
175; OBJ-NEXT:     Type: STYP_TEXT (0x20)
176; OBJ-NEXT:   }
177
178; OBJ:        Section {
179; OBJ-NEXT:     Index: [[#OBJ_INDX+1]]
180; OBJ-NEXT:     Name: .data
181; OBJ-NEXT:     PhysicalAddress: 0x0
182; OBJ-NEXT:     VirtualAddress: 0x0
183; OBJ-NEXT:     Size: 0x80
184; OBJ-NEXT:     RawDataOffset: 0x8C
185; OBJ-NEXT:     RelocationPointer: 0x0
186; OBJ-NEXT:     LineNumberPointer: 0x0
187; OBJ-NEXT:     NumberOfRelocations: 0
188; OBJ-NEXT:     NumberOfLineNumbers: 0
189; OBJ-NEXT:     Type: STYP_DATA (0x40)
190; OBJ-NEXT:   }
191
192; OBJ:        Section {
193; OBJ-NEXT:     Index: [[#OBJ_INDX+2]]
194; OBJ-NEXT:     Name: .bss
195; OBJ-NEXT:     PhysicalAddress: 0x80
196; OBJ-NEXT:     VirtualAddress: 0x80
197; OBJ-NEXT:     Size: 0x6C
198; OBJ-NEXT:     RawDataOffset: 0x0
199; OBJ-NEXT:     RelocationPointer: 0x0
200; OBJ-NEXT:     LineNumberPointer: 0x0
201; OBJ-NEXT:     NumberOfRelocations: 0
202; OBJ-NEXT:     NumberOfLineNumbers: 0
203; OBJ-NEXT:     Type: STYP_BSS (0x80)
204; OBJ-NEXT:   }
205; OBJ:      ]
206
207; SYMS:      File: {{.*}}aix-xcoff-data.ll.tmp.o
208; SYMS-NEXT: Format: aixcoff-rs6000
209; SYMS-NEXT: Arch: powerpc
210; SYMS-NEXT: AddressSize: 32bit
211; SYMS:      Symbols [
212; SYMS-NEXT:   Symbol {
213; SYMS-NEXT:     Index: 0
214; SYMS-NEXT:     Name: .file
215; SYMS-NEXT:     Value (SymbolTableIndex): 0x0
216; SYMS-NEXT:     Section: N_DEBUG
217; SYMS-NEXT:     Source Language ID: TB_C (0x0)
218; SYMS-NEXT:     CPU Version ID: 0x0
219; SYMS-NEXT:     StorageClass: C_FILE (0x67)
220; SYMS-NEXT:     NumberOfAuxEntries: 0
221; SYMS-NEXT:   }
222; SYMS-NEXT:   Symbol {
223; SYMS-NEXT:     Index: [[#INDX:]]
224; SYMS-NEXT:     Name: .text
225; SYMS-NEXT:     Value (RelocatableAddress): 0x0
226; SYMS-NEXT:     Section: .text
227; SYMS-NEXT:     Type: 0x0
228; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
229; SYMS-NEXT:     NumberOfAuxEntries: 1
230; SYMS-NEXT:     CSECT Auxiliary Entry {
231; SYMS-NEXT:       Index: [[#INDX+1]]
232; SYMS-NEXT:       SectionLen: 0
233; SYMS-NEXT:       ParameterHashIndex: 0x0
234; SYMS-NEXT:       TypeChkSectNum: 0x0
235; SYMS-NEXT:       SymbolAlignmentLog2: 2
236; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
237; SYMS-NEXT:       StorageMappingClass: XMC_PR (0x0)
238; SYMS-NEXT:       StabInfoIndex: 0x0
239; SYMS-NEXT:       StabSectNum: 0x0
240; SYMS-NEXT:     }
241; SYMS-NEXT:   }
242
243; SYMS:        Symbol {
244; SYMS-NEXT:     Index: [[#INDX+2]]
245; SYMS-NEXT:     Name: .data
246; SYMS-NEXT:     Value (RelocatableAddress): 0x0
247; SYMS-NEXT:     Section: .data
248; SYMS-NEXT:     Type: 0x0
249; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
250; SYMS-NEXT:     NumberOfAuxEntries: 1
251; SYMS-NEXT:     CSECT Auxiliary Entry {
252; SYMS-NEXT:       Index: [[#INDX+3]]
253; SYMS-NEXT:       SectionLen: 128
254; SYMS-NEXT:       ParameterHashIndex: 0x0
255; SYMS-NEXT:       TypeChkSectNum: 0x0
256; SYMS-NEXT:       SymbolAlignmentLog2: 5
257; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
258; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
259; SYMS-NEXT:       StabInfoIndex: 0x0
260; SYMS-NEXT:       StabSectNum: 0x0
261; SYMS-NEXT:     }
262; SYMS-NEXT:   }
263
264; SYMS:        Symbol {
265; SYMS-NEXT:     Index: [[#INDX+4]]
266; SYMS-NEXT:     Name: ivar
267; SYMS-NEXT:     Value (RelocatableAddress): 0x0
268; SYMS-NEXT:     Section: .data
269; SYMS-NEXT:     Type: 0x0
270; SYMS-NEXT:     StorageClass: C_EXT (0x2)
271; SYMS-NEXT:     NumberOfAuxEntries: 1
272; SYMS-NEXT:     CSECT Auxiliary Entry {
273; SYMS-NEXT:       Index: [[#INDX+5]]
274; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
275; SYMS-NEXT:       ParameterHashIndex: 0x0
276; SYMS-NEXT:       TypeChkSectNum: 0x0
277; SYMS-NEXT:       SymbolAlignmentLog2: 0
278; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
279; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
280; SYMS-NEXT:       StabInfoIndex: 0x0
281; SYMS-NEXT:       StabSectNum: 0x0
282; SYMS-NEXT:     }
283; SYMS-NEXT:   }
284
285; SYMS:        Symbol {
286; SYMS-NEXT:     Index: [[#INDX+6]]
287; SYMS-NEXT:     Name: llvar
288; SYMS-NEXT:     Value (RelocatableAddress): 0x8
289; SYMS-NEXT:     Section: .data
290; SYMS-NEXT:     Type: 0x0
291; SYMS-NEXT:     StorageClass: C_EXT (0x2)
292; SYMS-NEXT:     NumberOfAuxEntries: 1
293; SYMS-NEXT:     CSECT Auxiliary Entry {
294; SYMS-NEXT:       Index: [[#INDX+7]]
295; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
296; SYMS-NEXT:       ParameterHashIndex: 0x0
297; SYMS-NEXT:       TypeChkSectNum: 0x0
298; SYMS-NEXT:       SymbolAlignmentLog2: 0
299; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
300; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
301; SYMS-NEXT:       StabInfoIndex: 0x0
302; SYMS-NEXT:       StabSectNum: 0x0
303; SYMS-NEXT:     }
304; SYMS-NEXT:   }
305
306; SYMS:        Symbol {
307; SYMS-NEXT:     Index: [[#INDX+8]]
308; SYMS-NEXT:     Name: svar
309; SYMS-NEXT:     Value (RelocatableAddress): 0x10
310; SYMS-NEXT:     Section: .data
311; SYMS-NEXT:     Type: 0x0
312; SYMS-NEXT:     StorageClass: C_EXT (0x2)
313; SYMS-NEXT:     NumberOfAuxEntries: 1
314; SYMS-NEXT:     CSECT Auxiliary Entry {
315; SYMS-NEXT:       Index: [[#INDX+9]]
316; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
317; SYMS-NEXT:       ParameterHashIndex: 0x0
318; SYMS-NEXT:       TypeChkSectNum: 0x0
319; SYMS-NEXT:       SymbolAlignmentLog2: 0
320; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
321; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
322; SYMS-NEXT:       StabInfoIndex: 0x0
323; SYMS-NEXT:       StabSectNum: 0x0
324; SYMS-NEXT:     }
325; SYMS-NEXT:   }
326
327; SYMS:        Symbol {
328; SYMS-NEXT:     Index: [[#INDX+10]]
329; SYMS-NEXT:     Name: fvar
330; SYMS-NEXT:     Value (RelocatableAddress): 0x14
331; SYMS-NEXT:     Section: .data
332; SYMS-NEXT:     Type: 0x0
333; SYMS-NEXT:     StorageClass: C_EXT (0x2)
334; SYMS-NEXT:     NumberOfAuxEntries: 1
335; SYMS-NEXT:     CSECT Auxiliary Entry {
336; SYMS-NEXT:       Index: [[#INDX+11]]
337; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
338; SYMS-NEXT:       ParameterHashIndex: 0x0
339; SYMS-NEXT:       TypeChkSectNum: 0x0
340; SYMS-NEXT:       SymbolAlignmentLog2: 0
341; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
342; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
343; SYMS-NEXT:       StabInfoIndex: 0x0
344; SYMS-NEXT:       StabSectNum: 0x0
345; SYMS-NEXT:     }
346; SYMS-NEXT:   }
347
348; SYMS:        Symbol {
349; SYMS-NEXT:     Index: [[#INDX+12]]
350; SYMS-NEXT:     Name: dvar
351; SYMS-NEXT:     Value (RelocatableAddress): 0x18
352; SYMS-NEXT:     Section: .data
353; SYMS-NEXT:     Type: 0x0
354; SYMS-NEXT:     StorageClass: C_EXT (0x2)
355; SYMS-NEXT:     NumberOfAuxEntries: 1
356; SYMS-NEXT:     CSECT Auxiliary Entry {
357; SYMS-NEXT:       Index: [[#INDX+13]]
358; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
359; SYMS-NEXT:       ParameterHashIndex: 0x0
360; SYMS-NEXT:       TypeChkSectNum: 0x0
361; SYMS-NEXT:       SymbolAlignmentLog2: 0
362; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
363; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
364; SYMS-NEXT:       StabInfoIndex: 0x0
365; SYMS-NEXT:       StabSectNum: 0x0
366; SYMS-NEXT:     }
367; SYMS-NEXT:   }
368
369; SYMS:        Symbol {
370; SYMS-NEXT:     Index: [[#INDX+14]]
371; SYMS-NEXT:     Name: over_aligned
372; SYMS-NEXT:     Value (RelocatableAddress): 0x20
373; SYMS-NEXT:     Section: .data
374; SYMS-NEXT:     Type: 0x0
375; SYMS-NEXT:     StorageClass: C_EXT (0x2)
376; SYMS-NEXT:     NumberOfAuxEntries: 1
377; SYMS-NEXT:     CSECT Auxiliary Entry {
378; SYMS-NEXT:       Index: [[#INDX+15]]
379; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
380; SYMS-NEXT:       ParameterHashIndex: 0x0
381; SYMS-NEXT:       TypeChkSectNum: 0x0
382; SYMS-NEXT:       SymbolAlignmentLog2: 0
383; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
384; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
385; SYMS-NEXT:       StabInfoIndex: 0x0
386; SYMS-NEXT:       StabSectNum: 0x0
387; SYMS-NEXT:     }
388; SYMS-NEXT:   }
389
390; SYMS:        Symbol {
391; SYMS-NEXT:     Index: [[#INDX+16]]
392; SYMS-NEXT:     Name: chrarray
393; SYMS-NEXT:     Value (RelocatableAddress): 0x28
394; SYMS-NEXT:     Section: .data
395; SYMS-NEXT:     Type: 0x0
396; SYMS-NEXT:     StorageClass: C_EXT (0x2)
397; SYMS-NEXT:     NumberOfAuxEntries: 1
398; SYMS-NEXT:     CSECT Auxiliary Entry {
399; SYMS-NEXT:       Index: [[#INDX+17]]
400; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
401; SYMS-NEXT:       ParameterHashIndex: 0x0
402; SYMS-NEXT:       TypeChkSectNum: 0x0
403; SYMS-NEXT:       SymbolAlignmentLog2: 0
404; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
405; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
406; SYMS-NEXT:       StabInfoIndex: 0x0
407; SYMS-NEXT:       StabSectNum: 0x0
408; SYMS-NEXT:     }
409; SYMS-NEXT:   }
410
411; SYMS:        Symbol {
412; SYMS-NEXT:     Index: [[#INDX+18]]
413; SYMS-NEXT:     Name: dblarr
414; SYMS-NEXT:     Value (RelocatableAddress): 0x30
415; SYMS-NEXT:     Section: .data
416; SYMS-NEXT:     Type: 0x0
417; SYMS-NEXT:     StorageClass: C_EXT (0x2)
418; SYMS-NEXT:     NumberOfAuxEntries: 1
419; SYMS-NEXT:     CSECT Auxiliary Entry {
420; SYMS-NEXT:       Index: [[#INDX+19]]
421; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
422; SYMS-NEXT:       ParameterHashIndex: 0x0
423; SYMS-NEXT:       TypeChkSectNum: 0x0
424; SYMS-NEXT:       SymbolAlignmentLog2: 0
425; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
426; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
427; SYMS-NEXT:       StabInfoIndex: 0x0
428; SYMS-NEXT:       StabSectNum: 0x0
429; SYMS-NEXT:     }
430; SYMS-NEXT:   }
431
432; SYMS:        Symbol {
433; SYMS-NEXT:     Index: [[#INDX+20]]
434; SYMS-NEXT:     Name: d_0
435; SYMS-NEXT:     Value (RelocatableAddress): 0x50
436; SYMS-NEXT:     Section: .data
437; SYMS-NEXT:     Type: 0x0
438; SYMS-NEXT:     StorageClass: C_EXT (0x2)
439; SYMS-NEXT:     NumberOfAuxEntries: 1
440; SYMS-NEXT:     CSECT Auxiliary Entry {
441; SYMS-NEXT:       Index: [[#INDX+21]]
442; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
443; SYMS-NEXT:       ParameterHashIndex: 0x0
444; SYMS-NEXT:       TypeChkSectNum: 0x0
445; SYMS-NEXT:       SymbolAlignmentLog2: 0
446; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
447; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
448; SYMS-NEXT:       StabInfoIndex: 0x0
449; SYMS-NEXT:       StabSectNum: 0x0
450; SYMS-NEXT:     }
451; SYMS-NEXT:   }
452
453; SYMS:        Symbol {
454; SYMS-NEXT:     Index: [[#INDX+22]]
455; SYMS-NEXT:     Name: s_0
456; SYMS-NEXT:     Value (RelocatableAddress): 0x58
457; SYMS-NEXT:     Section: .data
458; SYMS-NEXT:     Type: 0x0
459; SYMS-NEXT:     StorageClass: C_EXT (0x2)
460; SYMS-NEXT:     NumberOfAuxEntries: 1
461; SYMS-NEXT:     CSECT Auxiliary Entry {
462; SYMS-NEXT:       Index: [[#INDX+23]]
463; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
464; SYMS-NEXT:       ParameterHashIndex: 0x0
465; SYMS-NEXT:       TypeChkSectNum: 0x0
466; SYMS-NEXT:       SymbolAlignmentLog2: 0
467; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
468; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
469; SYMS-NEXT:       StabInfoIndex: 0x0
470; SYMS-NEXT:       StabSectNum: 0x0
471; SYMS-NEXT:     }
472; SYMS-NEXT:   }
473
474; SYMS:        Symbol {
475; SYMS-NEXT:     Index: [[#INDX+24]]
476; SYMS-NEXT:     Name: f_0
477; SYMS-NEXT:     Value (RelocatableAddress): 0x5C
478; SYMS-NEXT:     Section: .data
479; SYMS-NEXT:     Type: 0x0
480; SYMS-NEXT:     StorageClass: C_EXT (0x2)
481; SYMS-NEXT:     NumberOfAuxEntries: 1
482; SYMS-NEXT:     CSECT Auxiliary Entry {
483; SYMS-NEXT:       Index: [[#INDX+25]]
484; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
485; SYMS-NEXT:       ParameterHashIndex: 0x0
486; SYMS-NEXT:       TypeChkSectNum: 0x0
487; SYMS-NEXT:       SymbolAlignmentLog2: 0
488; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
489; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
490; SYMS-NEXT:       StabInfoIndex: 0x0
491; SYMS-NEXT:       StabSectNum: 0x0
492; SYMS-NEXT:     }
493; SYMS-NEXT:   }
494
495; SYMS:        Symbol {
496; SYMS-NEXT:     Index: [[#INDX+26]]
497; SYMS-NEXT:     Name: astruct
498; SYMS-NEXT:     Value (RelocatableAddress): 0x60
499; SYMS-NEXT:     Section: .data
500; SYMS-NEXT:     Type: 0x0
501; SYMS-NEXT:     StorageClass: C_EXT (0x2)
502; SYMS-NEXT:     NumberOfAuxEntries: 1
503; SYMS-NEXT:     CSECT Auxiliary Entry {
504; SYMS-NEXT:       Index: [[#INDX+27]]
505; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
506; SYMS-NEXT:       ParameterHashIndex: 0x0
507; SYMS-NEXT:       TypeChkSectNum: 0x0
508; SYMS-NEXT:       SymbolAlignmentLog2: 0
509; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
510; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
511; SYMS-NEXT:       StabInfoIndex: 0x0
512; SYMS-NEXT:       StabSectNum: 0x0
513; SYMS-NEXT:     }
514; SYMS-NEXT:   }
515
516; SYMS:        Symbol {
517; SYMS-NEXT:     Index: [[#INDX+28]]
518; SYMS-NEXT:     Name: bstruct
519; SYMS-NEXT:     Value (RelocatableAddress): 0x70
520; SYMS-NEXT:     Section: .data
521; SYMS-NEXT:     Type: 0x0
522; SYMS-NEXT:     StorageClass: C_EXT (0x2)
523; SYMS-NEXT:     NumberOfAuxEntries: 1
524; SYMS-NEXT:     CSECT Auxiliary Entry {
525; SYMS-NEXT:       Index: [[#INDX+29]]
526; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
527; SYMS-NEXT:       ParameterHashIndex: 0x0
528; SYMS-NEXT:       TypeChkSectNum: 0x0
529; SYMS-NEXT:       SymbolAlignmentLog2: 0
530; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
531; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
532; SYMS-NEXT:       StabInfoIndex: 0x0
533; SYMS-NEXT:       StabSectNum: 0x0
534; SYMS-NEXT:     }
535; SYMS-NEXT:   }
536
537; SYMS:        Symbol {
538; SYMS-NEXT:     Index: [[#INDX+30]]
539; SYMS-NEXT:     Name: a
540; SYMS-NEXT:     Value (RelocatableAddress): 0x80
541; SYMS-NEXT:     Section: .bss
542; SYMS-NEXT:     Type: 0x0
543; SYMS-NEXT:     StorageClass: C_EXT (0x2)
544; SYMS-NEXT:     NumberOfAuxEntries: 1
545; SYMS-NEXT:     CSECT Auxiliary Entry {
546; SYMS-NEXT:       Index: [[#INDX+31]]
547; SYMS-NEXT:       SectionLen: 4
548; SYMS-NEXT:       ParameterHashIndex: 0x0
549; SYMS-NEXT:       TypeChkSectNum: 0x0
550; SYMS-NEXT:       SymbolAlignmentLog2: 2
551; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
552; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
553; SYMS-NEXT:       StabInfoIndex: 0x0
554; SYMS-NEXT:       StabSectNum: 0x0
555; SYMS-NEXT:     }
556; SYMS-NEXT:   }
557
558; SYMS:        Symbol {
559; SYMS-NEXT:     Index: [[#INDX+32]]
560; SYMS-NEXT:     Name: b
561; SYMS-NEXT:     Value (RelocatableAddress): 0x88
562; SYMS-NEXT:     Section: .bss
563; SYMS-NEXT:     Type: 0x0
564; SYMS-NEXT:     StorageClass: C_EXT (0x2)
565; SYMS-NEXT:     NumberOfAuxEntries: 1
566; SYMS-NEXT:     CSECT Auxiliary Entry {
567; SYMS-NEXT:       Index: [[#INDX+33]]
568; SYMS-NEXT:       SectionLen: 8
569; SYMS-NEXT:       ParameterHashIndex: 0x0
570; SYMS-NEXT:       TypeChkSectNum: 0x0
571; SYMS-NEXT:       SymbolAlignmentLog2: 3
572; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
573; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
574; SYMS-NEXT:       StabInfoIndex: 0x0
575; SYMS-NEXT:       StabSectNum: 0x0
576; SYMS-NEXT:     }
577; SYMS-NEXT:   }
578
579; SYMS:        Symbol {
580; SYMS-NEXT:     Index: [[#INDX+34]]
581; SYMS-NEXT:     Name: c
582; SYMS-NEXT:     Value (RelocatableAddress): 0x90
583; SYMS-NEXT:     Section: .bss
584; SYMS-NEXT:     Type: 0x0
585; SYMS-NEXT:     StorageClass: C_EXT (0x2)
586; SYMS-NEXT:     NumberOfAuxEntries: 1
587; SYMS-NEXT:     CSECT Auxiliary Entry {
588; SYMS-NEXT:       Index: [[#INDX+35]]
589; SYMS-NEXT:       SectionLen: 2
590; SYMS-NEXT:       ParameterHashIndex: 0x0
591; SYMS-NEXT:       TypeChkSectNum: 0x0
592; SYMS-NEXT:       SymbolAlignmentLog2: 1
593; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
594; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
595; SYMS-NEXT:       StabInfoIndex: 0x0
596; SYMS-NEXT:       StabSectNum: 0x0
597; SYMS-NEXT:     }
598; SYMS-NEXT:   }
599
600; SYMS:        Symbol {
601; SYMS-NEXT:     Index: [[#INDX+36]]
602; SYMS-NEXT:     Name: d
603; SYMS-NEXT:     Value (RelocatableAddress): 0x98
604; SYMS-NEXT:     Section: .bss
605; SYMS-NEXT:     Type: 0x0
606; SYMS-NEXT:     StorageClass: C_EXT (0x2)
607; SYMS-NEXT:     NumberOfAuxEntries: 1
608; SYMS-NEXT:     CSECT Auxiliary Entry {
609; SYMS-NEXT:       Index: [[#INDX+37]]
610; SYMS-NEXT:       SectionLen: 8
611; SYMS-NEXT:       ParameterHashIndex: 0x0
612; SYMS-NEXT:       TypeChkSectNum: 0x0
613; SYMS-NEXT:       SymbolAlignmentLog2: 3
614; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
615; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
616; SYMS-NEXT:       StabInfoIndex: 0x0
617; SYMS-NEXT:       StabSectNum: 0x0
618; SYMS-NEXT:     }
619; SYMS-NEXT:   }
620
621; SYMS:        Symbol {
622; SYMS-NEXT:     Index: [[#INDX+38]]
623; SYMS-NEXT:     Name: f
624; SYMS-NEXT:     Value (RelocatableAddress): 0xA0
625; SYMS-NEXT:     Section: .bss
626; SYMS-NEXT:     Type: 0x0
627; SYMS-NEXT:     StorageClass: C_EXT (0x2)
628; SYMS-NEXT:     NumberOfAuxEntries: 1
629; SYMS-NEXT:     CSECT Auxiliary Entry {
630; SYMS-NEXT:       Index: [[#INDX+39]]
631; SYMS-NEXT:       SectionLen: 4
632; SYMS-NEXT:       ParameterHashIndex: 0x0
633; SYMS-NEXT:       TypeChkSectNum: 0x0
634; SYMS-NEXT:       SymbolAlignmentLog2: 2
635; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
636; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
637; SYMS-NEXT:       StabInfoIndex: 0x0
638; SYMS-NEXT:       StabSectNum: 0x0
639; SYMS-NEXT:     }
640; SYMS-NEXT:   }
641
642; SYMS:        Symbol {
643; SYMS-NEXT:     Index: [[#INDX+40]]
644; SYMS-NEXT:     Name: over_aligned_comm
645; SYMS-NEXT:     Value (RelocatableAddress): 0xC0
646; SYMS-NEXT:     Section: .bss
647; SYMS-NEXT:     Type: 0x0
648; SYMS-NEXT:     StorageClass: C_EXT (0x2)
649; SYMS-NEXT:     NumberOfAuxEntries: 1
650; SYMS-NEXT:     CSECT Auxiliary Entry {
651; SYMS-NEXT:       Index: [[#INDX+41]]
652; SYMS-NEXT:       SectionLen: 8
653; SYMS-NEXT:       ParameterHashIndex: 0x0
654; SYMS-NEXT:       TypeChkSectNum: 0x0
655; SYMS-NEXT:       SymbolAlignmentLog2: 5
656; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
657; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
658; SYMS-NEXT:       StabInfoIndex: 0x0
659; SYMS-NEXT:       StabSectNum: 0x0
660; SYMS-NEXT:     }
661; SYMS-NEXT:   }
662
663; SYMS:        Symbol {
664; SYMS-NEXT:     Index: [[#INDX+42]]
665; SYMS-NEXT:     Name: array
666; SYMS-NEXT:     Value (RelocatableAddress): 0xC8
667; SYMS-NEXT:     Section: .bss
668; SYMS-NEXT:     Type: 0x0
669; SYMS-NEXT:     StorageClass: C_EXT (0x2)
670; SYMS-NEXT:     NumberOfAuxEntries: 1
671; SYMS-NEXT:     CSECT Auxiliary Entry {
672; SYMS-NEXT:       Index: [[#INDX+43]]
673; SYMS-NEXT:       SectionLen: 33
674; SYMS-NEXT:       ParameterHashIndex: 0x0
675; SYMS-NEXT:       TypeChkSectNum: 0x0
676; SYMS-NEXT:       SymbolAlignmentLog2: 0
677; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
678; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
679; SYMS-NEXT:       StabInfoIndex: 0x0
680; SYMS-NEXT:       StabSectNum: 0x0
681; SYMS-NEXT:     }
682; SYMS-NEXT:   }
683; SYMS:      ]
684