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