xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll (revision f31099ce581d33fdb64e35fee4b56d0a1145cab1)
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-prefixes=SYMS,SYMS32 %s
11
12; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t64.o < %s
13; RUN: llvm-readobj --section-headers --file-header %t64.o | \
14; RUN:   FileCheck --check-prefix=OBJ64 %s
15; RUN: llvm-readobj --syms %t64.o | FileCheck --check-prefixes=SYMS,SYMS64 %s
16
17@ivar = local_unnamed_addr global i32 35, align 4
18@llvar = local_unnamed_addr global i64 36, align 8
19@svar = local_unnamed_addr global i16 37, align 2
20@fvar = local_unnamed_addr global float 8.000000e+02, align 4
21@dvar = local_unnamed_addr global double 9.000000e+02, align 8
22@over_aligned = local_unnamed_addr global double 9.000000e+02, align 32
23@chrarray = local_unnamed_addr global [4 x i8] c"abcd", align 1
24@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
25@d_0 = global double 0.000000e+00, align 8
26@s_0 = global i16 0, align 2
27@f_0 = global float 0.000000e+00, align 4
28
29%struct.anon = type <{ i32, double }>
30@astruct = global [1 x %struct.anon] [%struct.anon <{ i32 1, double 7.000000e+00 }>], align 1
31
32%struct.anon2 = type { double, i32 }
33@bstruct = global [1 x %struct.anon2] [%struct.anon2 { double 7.000000e+00 , i32 1}], align 8
34
35@a = common global i32 0, align 4
36@b = common global i64 0, align 8
37@c = common global i16 0, align 2
38
39@d = common local_unnamed_addr global double 0.000000e+00, align 8
40@f = common local_unnamed_addr global float 0.000000e+00, align 4
41
42@over_aligned_comm = common local_unnamed_addr global double 0.000000e+00, align 32
43
44@array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1
45
46; CHECK-NOT: .toc
47
48; CHECK:      .file
49; CHECK-NEXT: .csect ..text..[PR],5
50; CHECK-NEXT: .rename ..text..[PR],""
51; CHECK-NEXT: .machine "PWR7"
52
53; CHECK:      .csect .data[RW],5
54; CHECK-NEXT: .globl  ivar
55; CHECK-NEXT: .align  2
56; CHECK-NEXT: ivar:
57; CHECK-NEXT: .vbyte	4, 35
58
59; CHECK:      .globl  llvar
60; CHECK-NEXT: .align  3
61; CHECK-NEXT: llvar:
62; CHECK32-NEXT: .vbyte	4, 0
63; CHECK32-NEXT: .vbyte	4, 36
64; CHECK64-NEXT: .vbyte	8, 36
65
66; CHECK:      .globl  svar
67; CHECK-NEXT: .align  1
68; CHECK-NEXT: svar:
69; CHECK-NEXT: .vbyte	2, 37
70
71; CHECK:      .globl  fvar
72; CHECK-NEXT: .align  2
73; CHECK-NEXT: fvar:
74; CHECK-NEXT: .vbyte	4, 0x44480000
75
76; CHECK:      .globl  dvar
77; CHECK-NEXT: .align  3
78; CHECK-NEXT: dvar:
79; CHECK32-NEXT: .vbyte	4, 1082925056
80; CHECK32-NEXT: .vbyte	4, 0
81; CHECK64-NEXT: .vbyte	8, 0x408c200000000000
82
83; CHECK:      .globl  over_aligned
84; CHECK-NEXT: .align  5
85; CHECK-NEXT: over_aligned:
86; CHECK32-NEXT: .vbyte	4, 1082925056
87; CHECK32-NEXT: .vbyte	4, 0
88; CHECK64-NEXT: .vbyte	8, 0x408c200000000000
89
90; CHECK:      .globl  chrarray
91; CHECK-NEXT: chrarray:
92; CHECK-NEXT: .byte   "abcd"
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:
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: 47
162; OBJ-NEXT:   OptionalHeaderSize: 0x0
163; OBJ-NEXT:   Flags: 0x0
164; OBJ-NEXT: }
165
166; OBJ:      Sections [
167; OBJ:        Section {
168; OBJ-NEXT:     Index: [[#OBJ_INDX:]]
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: [[#OBJ_INDX+1]]
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: [[#OBJ_INDX+2]]
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:      Symbols [
211; SYMS-NEXT:   Symbol {
212; SYMS-NEXT:     Index: 0
213; SYMS-NEXT:     Name: .file
214; SYMS-NEXT:     Value (SymbolTableIndex): 0x0
215; SYMS-NEXT:     Section: N_DEBUG
216; SYMS-NEXT:     Source Language ID: TB_CPLUSPLUS (0x9)
217; SYMS-NEXT:     CPU Version ID: TCPU_PWR7 (0x18)
218; SYMS-NEXT:     StorageClass: C_FILE (0x67)
219; SYMS-NEXT:     NumberOfAuxEntries: 2
220; SYMS-NEXT:     File Auxiliary Entry {
221; SYMS-NEXT:       Index: 1
222; SYMS-NEXT:       Name:
223; SYMS-NEXT:       Type: XFT_FN (0x0)
224; SYMS64-NEXT:     Auxiliary Type: AUX_FILE (0xFC)
225; SYMS-NEXT:     }
226; SYMS-NEXT:     File Auxiliary Entry {
227; SYMS-NEXT:       Index: 2
228; SYMS-NEXT:       Name: LLVM
229; SYMS-NEXT:       Type: XFT_CV (0x2)
230; SYMS64-NEXT:     Auxiliary Type: AUX_FILE (0xFC)
231; SYMS-NEXT:     }
232; SYMS-NEXT:   }
233; SYMS-NEXT:   Symbol {
234; SYMS-NEXT:     Index: [[#INDX:]]
235; SYMS-NEXT:     Name:
236; SYMS-NEXT:     Value (RelocatableAddress): 0x0
237; SYMS-NEXT:     Section: .text
238; SYMS-NEXT:     Type: 0x0
239; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
240; SYMS-NEXT:     NumberOfAuxEntries: 1
241; SYMS-NEXT:     CSECT Auxiliary Entry {
242; SYMS-NEXT:       Index: [[#INDX+1]]
243; SYMS-NEXT:       SectionLen: 0
244; SYMS-NEXT:       ParameterHashIndex: 0x0
245; SYMS-NEXT:       TypeChkSectNum: 0x0
246; SYMS-NEXT:       SymbolAlignmentLog2: 5
247; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
248; SYMS-NEXT:       StorageMappingClass: XMC_PR (0x0)
249; SYMS32-NEXT:     StabInfoIndex: 0x0
250; SYMS32-NEXT:     StabSectNum: 0x0
251; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
252; SYMS-NEXT:     }
253; SYMS-NEXT:   }
254
255; SYMS:        Symbol {
256; SYMS-NEXT:     Index: [[#INDX+2]]
257; SYMS-NEXT:     Name: .data
258; SYMS-NEXT:     Value (RelocatableAddress): 0x0
259; SYMS-NEXT:     Section: .data
260; SYMS-NEXT:     Type: 0x0
261; SYMS-NEXT:     StorageClass: C_HIDEXT (0x6B)
262; SYMS-NEXT:     NumberOfAuxEntries: 1
263; SYMS-NEXT:     CSECT Auxiliary Entry {
264; SYMS-NEXT:       Index: [[#INDX+3]]
265; SYMS-NEXT:       SectionLen: 128
266; SYMS-NEXT:       ParameterHashIndex: 0x0
267; SYMS-NEXT:       TypeChkSectNum: 0x0
268; SYMS-NEXT:       SymbolAlignmentLog2: 5
269; SYMS-NEXT:       SymbolType: XTY_SD (0x1)
270; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
271; SYMS32-NEXT:     StabInfoIndex: 0x0
272; SYMS32-NEXT:     StabSectNum: 0x0
273; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
274; SYMS-NEXT:     }
275; SYMS-NEXT:   }
276
277; SYMS:        Symbol {
278; SYMS-NEXT:     Index: [[#INDX+4]]
279; SYMS-NEXT:     Name: ivar
280; SYMS-NEXT:     Value (RelocatableAddress): 0x0
281; SYMS-NEXT:     Section: .data
282; SYMS-NEXT:     Type: 0x0
283; SYMS-NEXT:     StorageClass: C_EXT (0x2)
284; SYMS-NEXT:     NumberOfAuxEntries: 1
285; SYMS-NEXT:     CSECT Auxiliary Entry {
286; SYMS-NEXT:       Index: [[#INDX+5]]
287; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
288; SYMS-NEXT:       ParameterHashIndex: 0x0
289; SYMS-NEXT:       TypeChkSectNum: 0x0
290; SYMS-NEXT:       SymbolAlignmentLog2: 0
291; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
292; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
293; SYMS32-NEXT:     StabInfoIndex: 0x0
294; SYMS32-NEXT:     StabSectNum: 0x0
295; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
296; SYMS-NEXT:     }
297; SYMS-NEXT:   }
298
299; SYMS:        Symbol {
300; SYMS-NEXT:     Index: [[#INDX+6]]
301; SYMS-NEXT:     Name: llvar
302; SYMS-NEXT:     Value (RelocatableAddress): 0x8
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+7]]
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; SYMS32-NEXT:     StabInfoIndex: 0x0
316; SYMS32-NEXT:     StabSectNum: 0x0
317; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
318; SYMS-NEXT:     }
319; SYMS-NEXT:   }
320
321; SYMS:        Symbol {
322; SYMS-NEXT:     Index: [[#INDX+8]]
323; SYMS-NEXT:     Name: svar
324; SYMS-NEXT:     Value (RelocatableAddress): 0x10
325; SYMS-NEXT:     Section: .data
326; SYMS-NEXT:     Type: 0x0
327; SYMS-NEXT:     StorageClass: C_EXT (0x2)
328; SYMS-NEXT:     NumberOfAuxEntries: 1
329; SYMS-NEXT:     CSECT Auxiliary Entry {
330; SYMS-NEXT:       Index: [[#INDX+9]]
331; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
332; SYMS-NEXT:       ParameterHashIndex: 0x0
333; SYMS-NEXT:       TypeChkSectNum: 0x0
334; SYMS-NEXT:       SymbolAlignmentLog2: 0
335; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
336; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
337; SYMS32-NEXT:     StabInfoIndex: 0x0
338; SYMS32-NEXT:     StabSectNum: 0x0
339; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
340; SYMS-NEXT:     }
341; SYMS-NEXT:   }
342
343; SYMS:        Symbol {
344; SYMS-NEXT:     Index: [[#INDX+10]]
345; SYMS-NEXT:     Name: fvar
346; SYMS-NEXT:     Value (RelocatableAddress): 0x14
347; SYMS-NEXT:     Section: .data
348; SYMS-NEXT:     Type: 0x0
349; SYMS-NEXT:     StorageClass: C_EXT (0x2)
350; SYMS-NEXT:     NumberOfAuxEntries: 1
351; SYMS-NEXT:     CSECT Auxiliary Entry {
352; SYMS-NEXT:       Index: [[#INDX+11]]
353; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
354; SYMS-NEXT:       ParameterHashIndex: 0x0
355; SYMS-NEXT:       TypeChkSectNum: 0x0
356; SYMS-NEXT:       SymbolAlignmentLog2: 0
357; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
358; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
359; SYMS32-NEXT:     StabInfoIndex: 0x0
360; SYMS32-NEXT:     StabSectNum: 0x0
361; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
362; SYMS-NEXT:     }
363; SYMS-NEXT:   }
364
365; SYMS:        Symbol {
366; SYMS-NEXT:     Index: [[#INDX+12]]
367; SYMS-NEXT:     Name: dvar
368; SYMS-NEXT:     Value (RelocatableAddress): 0x18
369; SYMS-NEXT:     Section: .data
370; SYMS-NEXT:     Type: 0x0
371; SYMS-NEXT:     StorageClass: C_EXT (0x2)
372; SYMS-NEXT:     NumberOfAuxEntries: 1
373; SYMS-NEXT:     CSECT Auxiliary Entry {
374; SYMS-NEXT:       Index: [[#INDX+13]]
375; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
376; SYMS-NEXT:       ParameterHashIndex: 0x0
377; SYMS-NEXT:       TypeChkSectNum: 0x0
378; SYMS-NEXT:       SymbolAlignmentLog2: 0
379; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
380; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
381; SYMS32-NEXT:     StabInfoIndex: 0x0
382; SYMS32-NEXT:     StabSectNum: 0x0
383; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
384; SYMS-NEXT:     }
385; SYMS-NEXT:   }
386
387; SYMS:        Symbol {
388; SYMS-NEXT:     Index: [[#INDX+14]]
389; SYMS-NEXT:     Name: over_aligned
390; SYMS-NEXT:     Value (RelocatableAddress): 0x20
391; SYMS-NEXT:     Section: .data
392; SYMS-NEXT:     Type: 0x0
393; SYMS-NEXT:     StorageClass: C_EXT (0x2)
394; SYMS-NEXT:     NumberOfAuxEntries: 1
395; SYMS-NEXT:     CSECT Auxiliary Entry {
396; SYMS-NEXT:       Index: [[#INDX+15]]
397; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
398; SYMS-NEXT:       ParameterHashIndex: 0x0
399; SYMS-NEXT:       TypeChkSectNum: 0x0
400; SYMS-NEXT:       SymbolAlignmentLog2: 0
401; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
402; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
403; SYMS32-NEXT:     StabInfoIndex: 0x0
404; SYMS32-NEXT:     StabSectNum: 0x0
405; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
406; SYMS-NEXT:     }
407; SYMS-NEXT:   }
408
409; SYMS:        Symbol {
410; SYMS-NEXT:     Index: [[#INDX+16]]
411; SYMS-NEXT:     Name: chrarray
412; SYMS-NEXT:     Value (RelocatableAddress): 0x28
413; SYMS-NEXT:     Section: .data
414; SYMS-NEXT:     Type: 0x0
415; SYMS-NEXT:     StorageClass: C_EXT (0x2)
416; SYMS-NEXT:     NumberOfAuxEntries: 1
417; SYMS-NEXT:     CSECT Auxiliary Entry {
418; SYMS-NEXT:       Index: [[#INDX+17]]
419; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
420; SYMS-NEXT:       ParameterHashIndex: 0x0
421; SYMS-NEXT:       TypeChkSectNum: 0x0
422; SYMS-NEXT:       SymbolAlignmentLog2: 0
423; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
424; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
425; SYMS32-NEXT:     StabInfoIndex: 0x0
426; SYMS32-NEXT:     StabSectNum: 0x0
427; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
428; SYMS-NEXT:     }
429; SYMS-NEXT:   }
430
431; SYMS:        Symbol {
432; SYMS-NEXT:     Index: [[#INDX+18]]
433; SYMS-NEXT:     Name: dblarr
434; SYMS-NEXT:     Value (RelocatableAddress): 0x30
435; SYMS-NEXT:     Section: .data
436; SYMS-NEXT:     Type: 0x0
437; SYMS-NEXT:     StorageClass: C_EXT (0x2)
438; SYMS-NEXT:     NumberOfAuxEntries: 1
439; SYMS-NEXT:     CSECT Auxiliary Entry {
440; SYMS-NEXT:       Index: [[#INDX+19]]
441; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
442; SYMS-NEXT:       ParameterHashIndex: 0x0
443; SYMS-NEXT:       TypeChkSectNum: 0x0
444; SYMS-NEXT:       SymbolAlignmentLog2: 0
445; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
446; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
447; SYMS32-NEXT:     StabInfoIndex: 0x0
448; SYMS32-NEXT:     StabSectNum: 0x0
449; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
450; SYMS-NEXT:     }
451; SYMS-NEXT:   }
452
453; SYMS:        Symbol {
454; SYMS-NEXT:     Index: [[#INDX+20]]
455; SYMS-NEXT:     Name: d_0
456; SYMS-NEXT:     Value (RelocatableAddress): 0x50
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+21]]
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; SYMS32-NEXT:     StabInfoIndex: 0x0
470; SYMS32-NEXT:     StabSectNum: 0x0
471; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
472; SYMS-NEXT:     }
473; SYMS-NEXT:   }
474
475; SYMS:        Symbol {
476; SYMS-NEXT:     Index: [[#INDX+22]]
477; SYMS-NEXT:     Name: s_0
478; SYMS-NEXT:     Value (RelocatableAddress): 0x58
479; SYMS-NEXT:     Section: .data
480; SYMS-NEXT:     Type: 0x0
481; SYMS-NEXT:     StorageClass: C_EXT (0x2)
482; SYMS-NEXT:     NumberOfAuxEntries: 1
483; SYMS-NEXT:     CSECT Auxiliary Entry {
484; SYMS-NEXT:       Index: [[#INDX+23]]
485; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
486; SYMS-NEXT:       ParameterHashIndex: 0x0
487; SYMS-NEXT:       TypeChkSectNum: 0x0
488; SYMS-NEXT:       SymbolAlignmentLog2: 0
489; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
490; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
491; SYMS32-NEXT:     StabInfoIndex: 0x0
492; SYMS32-NEXT:     StabSectNum: 0x0
493; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
494; SYMS-NEXT:     }
495; SYMS-NEXT:   }
496
497; SYMS:        Symbol {
498; SYMS-NEXT:     Index: [[#INDX+24]]
499; SYMS-NEXT:     Name: f_0
500; SYMS-NEXT:     Value (RelocatableAddress): 0x5C
501; SYMS-NEXT:     Section: .data
502; SYMS-NEXT:     Type: 0x0
503; SYMS-NEXT:     StorageClass: C_EXT (0x2)
504; SYMS-NEXT:     NumberOfAuxEntries: 1
505; SYMS-NEXT:     CSECT Auxiliary Entry {
506; SYMS-NEXT:       Index: [[#INDX+25]]
507; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
508; SYMS-NEXT:       ParameterHashIndex: 0x0
509; SYMS-NEXT:       TypeChkSectNum: 0x0
510; SYMS-NEXT:       SymbolAlignmentLog2: 0
511; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
512; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
513; SYMS32-NEXT:     StabInfoIndex: 0x0
514; SYMS32-NEXT:     StabSectNum: 0x0
515; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
516; SYMS-NEXT:     }
517; SYMS-NEXT:   }
518
519; SYMS:        Symbol {
520; SYMS-NEXT:     Index: [[#INDX+26]]
521; SYMS-NEXT:     Name: astruct
522; SYMS-NEXT:     Value (RelocatableAddress): 0x60
523; SYMS-NEXT:     Section: .data
524; SYMS-NEXT:     Type: 0x0
525; SYMS-NEXT:     StorageClass: C_EXT (0x2)
526; SYMS-NEXT:     NumberOfAuxEntries: 1
527; SYMS-NEXT:     CSECT Auxiliary Entry {
528; SYMS-NEXT:       Index: [[#INDX+27]]
529; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
530; SYMS-NEXT:       ParameterHashIndex: 0x0
531; SYMS-NEXT:       TypeChkSectNum: 0x0
532; SYMS-NEXT:       SymbolAlignmentLog2: 0
533; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
534; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
535; SYMS32-NEXT:     StabInfoIndex: 0x0
536; SYMS32-NEXT:     StabSectNum: 0x0
537; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
538; SYMS-NEXT:     }
539; SYMS-NEXT:   }
540
541; SYMS:        Symbol {
542; SYMS-NEXT:     Index: [[#INDX+28]]
543; SYMS-NEXT:     Name: bstruct
544; SYMS-NEXT:     Value (RelocatableAddress): 0x70
545; SYMS-NEXT:     Section: .data
546; SYMS-NEXT:     Type: 0x0
547; SYMS-NEXT:     StorageClass: C_EXT (0x2)
548; SYMS-NEXT:     NumberOfAuxEntries: 1
549; SYMS-NEXT:     CSECT Auxiliary Entry {
550; SYMS-NEXT:       Index: [[#INDX+29]]
551; SYMS-NEXT:       ContainingCsectSymbolIndex: [[#INDX+2]]
552; SYMS-NEXT:       ParameterHashIndex: 0x0
553; SYMS-NEXT:       TypeChkSectNum: 0x0
554; SYMS-NEXT:       SymbolAlignmentLog2: 0
555; SYMS-NEXT:       SymbolType: XTY_LD (0x2)
556; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
557; SYMS32-NEXT:     StabInfoIndex: 0x0
558; SYMS32-NEXT:     StabSectNum: 0x0
559; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
560; SYMS-NEXT:     }
561; SYMS-NEXT:   }
562
563; SYMS:        Symbol {
564; SYMS-NEXT:     Index: [[#INDX+30]]
565; SYMS-NEXT:     Name: a
566; SYMS-NEXT:     Value (RelocatableAddress): 0x80
567; SYMS-NEXT:     Section: .bss
568; SYMS-NEXT:     Type: 0x0
569; SYMS-NEXT:     StorageClass: C_EXT (0x2)
570; SYMS-NEXT:     NumberOfAuxEntries: 1
571; SYMS-NEXT:     CSECT Auxiliary Entry {
572; SYMS-NEXT:       Index: [[#INDX+31]]
573; SYMS-NEXT:       SectionLen: 4
574; SYMS-NEXT:       ParameterHashIndex: 0x0
575; SYMS-NEXT:       TypeChkSectNum: 0x0
576; SYMS-NEXT:       SymbolAlignmentLog2: 2
577; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
578; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
579; SYMS32-NEXT:     StabInfoIndex: 0x0
580; SYMS32-NEXT:     StabSectNum: 0x0
581; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
582; SYMS-NEXT:     }
583; SYMS-NEXT:   }
584
585; SYMS:        Symbol {
586; SYMS-NEXT:     Index: [[#INDX+32]]
587; SYMS-NEXT:     Name: b
588; SYMS-NEXT:     Value (RelocatableAddress): 0x88
589; SYMS-NEXT:     Section: .bss
590; SYMS-NEXT:     Type: 0x0
591; SYMS-NEXT:     StorageClass: C_EXT (0x2)
592; SYMS-NEXT:     NumberOfAuxEntries: 1
593; SYMS-NEXT:     CSECT Auxiliary Entry {
594; SYMS-NEXT:       Index: [[#INDX+33]]
595; SYMS-NEXT:       SectionLen: 8
596; SYMS-NEXT:       ParameterHashIndex: 0x0
597; SYMS-NEXT:       TypeChkSectNum: 0x0
598; SYMS-NEXT:       SymbolAlignmentLog2: 3
599; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
600; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
601; SYMS32-NEXT:     StabInfoIndex: 0x0
602; SYMS32-NEXT:     StabSectNum: 0x0
603; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
604; SYMS-NEXT:     }
605; SYMS-NEXT:   }
606
607; SYMS:        Symbol {
608; SYMS-NEXT:     Index: [[#INDX+34]]
609; SYMS-NEXT:     Name: c
610; SYMS-NEXT:     Value (RelocatableAddress): 0x90
611; SYMS-NEXT:     Section: .bss
612; SYMS-NEXT:     Type: 0x0
613; SYMS-NEXT:     StorageClass: C_EXT (0x2)
614; SYMS-NEXT:     NumberOfAuxEntries: 1
615; SYMS-NEXT:     CSECT Auxiliary Entry {
616; SYMS-NEXT:       Index: [[#INDX+35]]
617; SYMS-NEXT:       SectionLen: 2
618; SYMS-NEXT:       ParameterHashIndex: 0x0
619; SYMS-NEXT:       TypeChkSectNum: 0x0
620; SYMS-NEXT:       SymbolAlignmentLog2: 1
621; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
622; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
623; SYMS32-NEXT:     StabInfoIndex: 0x0
624; SYMS32-NEXT:     StabSectNum: 0x0
625; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
626; SYMS-NEXT:     }
627; SYMS-NEXT:   }
628
629; SYMS:        Symbol {
630; SYMS-NEXT:     Index: [[#INDX+36]]
631; SYMS-NEXT:     Name: d
632; SYMS-NEXT:     Value (RelocatableAddress): 0x98
633; SYMS-NEXT:     Section: .bss
634; SYMS-NEXT:     Type: 0x0
635; SYMS-NEXT:     StorageClass: C_EXT (0x2)
636; SYMS-NEXT:     NumberOfAuxEntries: 1
637; SYMS-NEXT:     CSECT Auxiliary Entry {
638; SYMS-NEXT:       Index: [[#INDX+37]]
639; SYMS-NEXT:       SectionLen: 8
640; SYMS-NEXT:       ParameterHashIndex: 0x0
641; SYMS-NEXT:       TypeChkSectNum: 0x0
642; SYMS-NEXT:       SymbolAlignmentLog2: 3
643; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
644; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
645; SYMS32-NEXT:     StabInfoIndex: 0x0
646; SYMS32-NEXT:     StabSectNum: 0x0
647; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
648; SYMS-NEXT:     }
649; SYMS-NEXT:   }
650
651; SYMS:        Symbol {
652; SYMS-NEXT:     Index: [[#INDX+38]]
653; SYMS-NEXT:     Name: f
654; SYMS-NEXT:     Value (RelocatableAddress): 0xA0
655; SYMS-NEXT:     Section: .bss
656; SYMS-NEXT:     Type: 0x0
657; SYMS-NEXT:     StorageClass: C_EXT (0x2)
658; SYMS-NEXT:     NumberOfAuxEntries: 1
659; SYMS-NEXT:     CSECT Auxiliary Entry {
660; SYMS-NEXT:       Index: [[#INDX+39]]
661; SYMS-NEXT:       SectionLen: 4
662; SYMS-NEXT:       ParameterHashIndex: 0x0
663; SYMS-NEXT:       TypeChkSectNum: 0x0
664; SYMS-NEXT:       SymbolAlignmentLog2: 2
665; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
666; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
667; SYMS32-NEXT:     StabInfoIndex: 0x0
668; SYMS32-NEXT:     StabSectNum: 0x0
669; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
670; SYMS-NEXT:     }
671; SYMS-NEXT:   }
672
673; SYMS:        Symbol {
674; SYMS-NEXT:     Index: [[#INDX+40]]
675; SYMS-NEXT:     Name: over_aligned_comm
676; SYMS-NEXT:     Value (RelocatableAddress): 0xC0
677; SYMS-NEXT:     Section: .bss
678; SYMS-NEXT:     Type: 0x0
679; SYMS-NEXT:     StorageClass: C_EXT (0x2)
680; SYMS-NEXT:     NumberOfAuxEntries: 1
681; SYMS-NEXT:     CSECT Auxiliary Entry {
682; SYMS-NEXT:       Index: [[#INDX+41]]
683; SYMS-NEXT:       SectionLen: 8
684; SYMS-NEXT:       ParameterHashIndex: 0x0
685; SYMS-NEXT:       TypeChkSectNum: 0x0
686; SYMS-NEXT:       SymbolAlignmentLog2: 5
687; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
688; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
689; SYMS32-NEXT:     StabInfoIndex: 0x0
690; SYMS32-NEXT:     StabSectNum: 0x0
691; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
692; SYMS-NEXT:     }
693; SYMS-NEXT:   }
694
695; SYMS:        Symbol {
696; SYMS-NEXT:     Index: [[#INDX+42]]
697; SYMS-NEXT:     Name: array
698; SYMS-NEXT:     Value (RelocatableAddress): 0xC8
699; SYMS-NEXT:     Section: .bss
700; SYMS-NEXT:     Type: 0x0
701; SYMS-NEXT:     StorageClass: C_EXT (0x2)
702; SYMS-NEXT:     NumberOfAuxEntries: 1
703; SYMS-NEXT:     CSECT Auxiliary Entry {
704; SYMS-NEXT:       Index: [[#INDX+43]]
705; SYMS-NEXT:       SectionLen: 33
706; SYMS-NEXT:       ParameterHashIndex: 0x0
707; SYMS-NEXT:       TypeChkSectNum: 0x0
708; SYMS-NEXT:       SymbolAlignmentLog2: 0
709; SYMS-NEXT:       SymbolType: XTY_CM (0x3)
710; SYMS-NEXT:       StorageMappingClass: XMC_RW (0x5)
711; SYMS32-NEXT:     StabInfoIndex: 0x0
712; SYMS32-NEXT:     StabSectNum: 0x0
713; SYMS64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
714; SYMS-NEXT:     }
715; SYMS-NEXT:   }
716; SYMS:      ]
717
718; OBJ64:      Format: aix5coff64-rs6000
719; OBJ64-NEXT: Arch: powerpc64
720; OBJ64-NEXT: AddressSize: 64bit
721; OBJ64-NEXT: FileHeader {
722; OBJ64-NEXT:   Magic: 0x1F7
723; OBJ64-NEXT:   NumberOfSections: 3
724; OBJ64-NEXT:   TimeStamp: None (0x0)
725; OBJ64-NEXT:   SymbolTableOffset: 0x170
726; OBJ64-NEXT:   SymbolTableEntries: 47
727; OBJ64-NEXT:   OptionalHeaderSize: 0x0
728; OBJ64-NEXT:   Flags: 0x0
729; OBJ64-NEXT: }
730
731; OBJ64:      Sections [
732; OBJ64-NEXT:   Section {
733; OBJ64-NEXT:     Index: [[#OBJ64_INDX:]]
734; OBJ64-NEXT:     Name: .text
735; OBJ64-NEXT:     PhysicalAddress: 0x0
736; OBJ64-NEXT:     VirtualAddress: 0x0
737; OBJ64-NEXT:     Size: 0x0
738; OBJ64-NEXT:     RawDataOffset: 0xF0
739; OBJ64-NEXT:     RelocationPointer: 0x0
740; OBJ64-NEXT:     LineNumberPointer: 0x0
741; OBJ64-NEXT:     NumberOfRelocations: 0
742; OBJ64-NEXT:     NumberOfLineNumbers: 0
743; OBJ64-NEXT:     Type: STYP_TEXT (0x20)
744; OBJ64-NEXT:   }
745; OBJ64-NEXT:   Section {
746; OBJ64-NEXT:     Index: [[#OBJ64_INDX+1]]
747; OBJ64-NEXT:     Name: .data
748; OBJ64-NEXT:     PhysicalAddress: 0x0
749; OBJ64-NEXT:     VirtualAddress: 0x0
750; OBJ64-NEXT:     Size: 0x80
751; OBJ64-NEXT:     RawDataOffset: 0xF0
752; OBJ64-NEXT:     RelocationPointer: 0x0
753; OBJ64-NEXT:     LineNumberPointer: 0x0
754; OBJ64-NEXT:     NumberOfRelocations: 0
755; OBJ64-NEXT:     NumberOfLineNumbers: 0
756; OBJ64-NEXT:     Type: STYP_DATA (0x40)
757; OBJ64-NEXT:   }
758; OBJ64-NEXT:   Section {
759; OBJ64-NEXT:     Index: [[#OBJ64_INDX+2]]
760; OBJ64-NEXT:     Name: .bss
761; OBJ64-NEXT:     PhysicalAddress: 0x80
762; OBJ64-NEXT:     VirtualAddress: 0x80
763; OBJ64-NEXT:     Size: 0x6C
764; OBJ64-NEXT:     RawDataOffset: 0x0
765; OBJ64-NEXT:     RelocationPointer: 0x0
766; OBJ64-NEXT:     LineNumberPointer: 0x0
767; OBJ64-NEXT:     NumberOfRelocations: 0
768; OBJ64-NEXT:     NumberOfLineNumbers: 0
769; OBJ64-NEXT:     Type: STYP_BSS (0x80)
770; OBJ64-NEXT:   }
771; OBJ64-NEXT: ]
772