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