diff --git a/llvm/lib/MC/XCOFFObjectWriter.cpp b/llvm/lib/MC/XCOFFObjectWriter.cpp --- a/llvm/lib/MC/XCOFFObjectWriter.cpp +++ b/llvm/lib/MC/XCOFFObjectWriter.cpp @@ -158,15 +158,17 @@ // the sections. Should have one for each set of csects that get mapped into // the same section and get handled in a 'similar' way. CsectGroup ProgramCodeCsects{CsectGroup::LabelDefSupported, {}}; + CsectGroup DataCsects{CsectGroup::LabelDefSupported, {}}; CsectGroup BSSCsects{CsectGroup::LabelDefUnsupported, {}}; // The Predefined sections. Section Text; + Section Data; Section BSS; // All the XCOFF sections, in the order they will appear in the section header // table. - std::array
Sections{{&Text, &BSS}}; + std::array
Sections{{&Text, &Data, &BSS}}; CsectGroup &getCsectGroup(const MCSectionXCOFF *MCSec); @@ -224,6 +226,8 @@ Strings(StringTableBuilder::XCOFF), Text(".text", XCOFF::STYP_TEXT, /* IsVirtual */ false, CsectGroups{&ProgramCodeCsects}), + Data(".data", XCOFF::STYP_DATA, /* IsVirtual */ false, + CsectGroups{&DataCsects}), BSS(".bss", XCOFF::STYP_BSS, /* IsVirtual */ true, CsectGroups{&BSSCsects}) {} @@ -251,6 +255,9 @@ if (XCOFF::XTY_CM == MCSec->getCSectType()) return BSSCsects; + if (XCOFF::XTY_SD == MCSec->getCSectType()) + return DataCsects; + report_fatal_error("Unhandled mapping of read-write csect to section."); case XCOFF::XMC_BS: assert(XCOFF::XTY_CM == MCSec->getCSectType() && diff --git a/llvm/test/CodeGen/PowerPC/aix-xcoff-common.ll b/llvm/test/CodeGen/PowerPC/aix-xcoff-common.ll deleted file mode 100644 --- a/llvm/test/CodeGen/PowerPC/aix-xcoff-common.ll +++ /dev/null @@ -1,221 +0,0 @@ -; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s - -; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s -; RUN: llvm-readobj --section-headers --file-header %t.o | \ -; RUN: FileCheck --check-prefix=OBJ %s -; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s - -; RUN: not llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj -o %t.o 2>&1 \ -; RUN: < %s | FileCheck --check-prefix=XCOFF64 %s - -; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet. - -@a = common global i32 0, align 4 -@b = common global i64 0, align 8 -@c = common global i16 0, align 2 - -@d = common local_unnamed_addr global double 0.000000e+00, align 8 -@f = common local_unnamed_addr global float 0.000000e+00, align 4 - -@over_aligned = common local_unnamed_addr global double 0.000000e+00, align 32 - -@array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1 - -; CHECK-NOT: .toc - -; CHECK: .csect .text[PR] -; CHECK-NEXT: .file -; CHECK-NEXT: .comm a,4,2 -; CHECK-NEXT: .comm b,8,3 -; CHECK-NEXT: .comm c,2,1 -; CHECK-NEXT: .comm d,8,3 -; CHECK-NEXT: .comm f,4,2 -; CHECK-NEXT: .comm over_aligned,8,5 -; CHECK-NEXT: .comm array,33,0 - -; OBJ: File: {{.*}}aix-xcoff-common.ll.tmp.o -; OBJ-NEXT: Format: aixcoff-rs6000 -; OBJ-NEXT: Arch: powerpc -; OBJ-NEXT: AddressSize: 32bit -; OBJ-NEXT: FileHeader { -; OBJ-NEXT: Magic: 0x1DF -; OBJ-NEXT: NumberOfSections: 2 -; OBJ-NEXT: TimeStamp: -; OBJ-NEXT: SymbolTableOffset: 0x64 -; OBJ-NEXT: SymbolTableEntries: 16 -; OBJ-NEXT: OptionalHeaderSize: 0x0 -; OBJ-NEXT: Flags: 0x0 -; OBJ-NEXT: } -; OBJ-NEXT: Sections [ -; OBJ-NEXT: Section { -; OBJ-NEXT: Index: 1 -; OBJ-NEXT: Name: .text -; OBJ-NEXT: PhysicalAddress: 0x0 -; OBJ-NEXT: VirtualAddress: 0x0 -; OBJ-NEXT: Size: 0x0 -; OBJ-NEXT: RawDataOffset: 0x64 -; OBJ-NEXT: RelocationPointer: 0x0 -; OBJ-NEXT: LineNumberPointer: 0x0 -; OBJ-NEXT: NumberOfRelocations: 0 -; OBJ-NEXT: NumberOfLineNumbers: 0 -; OBJ-NEXT: Type: STYP_TEXT (0x20) -; OBJ-NEXT: } -; OBJ-NEXT: Section { -; OBJ-NEXT: Index: 2 -; OBJ-NEXT: Name: .bss -; OBJ-NEXT: PhysicalAddress: 0x0 -; OBJ-NEXT: VirtualAddress: 0x0 -; OBJ-NEXT: Size: 0x6C -; OBJ-NEXT: RawDataOffset: 0x0 -; OBJ-NEXT: RelocationPointer: 0x0 -; OBJ-NEXT: LineNumberPointer: 0x0 -; OBJ-NEXT: NumberOfRelocations: 0 -; OBJ-NEXT: NumberOfLineNumbers: 0 -; OBJ-NEXT: Type: STYP_BSS (0x80) -; OBJ-NEXT: } -; OBJ-NEXT: ] - -; SYMS: File: {{.*}}aix-xcoff-common.ll.tmp.o -; SYMS-NEXT: Format: aixcoff-rs6000 -; SYMS-NEXT: Arch: powerpc -; SYMS-NEXT: AddressSize: 32bit -; SYMS-NEXT: Symbols [ -; SYMS: Symbol {{[{][[:space:]] *}}Index: [[#Index:]]{{[[:space:]] *}}Name: a -; SYMS-NEXT: Value (RelocatableAddress): 0x0 -; SYMS-NEXT: Section: .bss -; SYMS-NEXT: Type: 0x0 -; SYMS-NEXT: StorageClass: C_EXT (0x2) -; SYMS-NEXT: NumberOfAuxEntries: 1 -; SYMS-NEXT: CSECT Auxiliary Entry { -; SYMS-NEXT: Index: [[#Index + 1]] -; SYMS-NEXT: SectionLen: 4 -; SYMS-NEXT: ParameterHashIndex: 0x0 -; SYMS-NEXT: TypeChkSectNum: 0x0 -; SYMS-NEXT: SymbolAlignmentLog2: 2 -; SYMS-NEXT: SymbolType: XTY_CM (0x3) -; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) -; SYMS-NEXT: StabInfoIndex: 0x0 -; SYMS-NEXT: StabSectNum: 0x0 -; SYMS-NEXT: } -; SYMS-NEXT: } -; SYMS-NEXT: Symbol { -; SYMS-NEXT: Index: [[#Index + 2]] -; SYMS-NEXT: Name: b -; SYMS-NEXT: Value (RelocatableAddress): 0x8 -; SYMS-NEXT: Section: .bss -; SYMS-NEXT: Type: 0x0 -; SYMS-NEXT: StorageClass: C_EXT (0x2) -; SYMS-NEXT: NumberOfAuxEntries: 1 -; SYMS-NEXT: CSECT Auxiliary Entry { -; SYMS-NEXT: Index: [[#Index + 3]] -; SYMS-NEXT: SectionLen: 8 -; SYMS-NEXT: ParameterHashIndex: 0x0 -; SYMS-NEXT: TypeChkSectNum: 0x0 -; SYMS-NEXT: SymbolAlignmentLog2: 3 -; SYMS-NEXT: SymbolType: XTY_CM (0x3) -; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) -; SYMS-NEXT: StabInfoIndex: 0x0 -; SYMS-NEXT: StabSectNum: 0x0 -; SYMS-NEXT: } -; SYMS-NEXT: } -; SYMS-NEXT: Symbol { -; SYMS-NEXT: Index: [[#Index + 4]] -; SYMS-NEXT: Name: c -; SYMS-NEXT: Value (RelocatableAddress): 0x10 -; SYMS-NEXT: Section: .bss -; SYMS-NEXT: Type: 0x0 -; SYMS-NEXT: StorageClass: C_EXT (0x2) -; SYMS-NEXT: NumberOfAuxEntries: 1 -; SYMS-NEXT: CSECT Auxiliary Entry { -; SYMS-NEXT: Index: [[#Index + 5]] -; SYMS-NEXT: SectionLen: 2 -; SYMS-NEXT: ParameterHashIndex: 0x0 -; SYMS-NEXT: TypeChkSectNum: 0x0 -; SYMS-NEXT: SymbolAlignmentLog2: 1 -; SYMS-NEXT: SymbolType: XTY_CM (0x3) -; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) -; SYMS-NEXT: StabInfoIndex: 0x0 -; SYMS-NEXT: StabSectNum: 0x0 -; SYMS-NEXT: } -; SYMS-NEXT: } -; SYMS-NEXT: Symbol { -; SYMS-NEXT: Index: [[#Index + 6]] -; SYMS-NEXT: Name: d -; SYMS-NEXT: Value (RelocatableAddress): 0x18 -; SYMS-NEXT: Section: .bss -; SYMS-NEXT: Type: 0x0 -; SYMS-NEXT: StorageClass: C_EXT (0x2) -; SYMS-NEXT: NumberOfAuxEntries: 1 -; SYMS-NEXT: CSECT Auxiliary Entry { -; SYMS-NEXT: Index: [[#Index + 7]] -; SYMS-NEXT: SectionLen: 8 -; SYMS-NEXT: ParameterHashIndex: 0x0 -; SYMS-NEXT: TypeChkSectNum: 0x0 -; SYMS-NEXT: SymbolAlignmentLog2: 3 -; SYMS-NEXT: SymbolType: XTY_CM (0x3) -; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) -; SYMS-NEXT: StabInfoIndex: 0x0 -; SYMS-NEXT: StabSectNum: 0x0 -; SYMS-NEXT: } -; SYMS-NEXT: } -; SYMS-NEXT: Symbol { -; SYMS-NEXT: Index: [[#Index + 8]] -; SYMS-NEXT: Name: f -; SYMS-NEXT: Value (RelocatableAddress): 0x20 -; SYMS-NEXT: Section: .bss -; SYMS-NEXT: Type: 0x0 -; SYMS-NEXT: StorageClass: C_EXT (0x2) -; SYMS-NEXT: NumberOfAuxEntries: 1 -; SYMS-NEXT: CSECT Auxiliary Entry { -; SYMS-NEXT: Index: [[#Index + 9]] -; SYMS-NEXT: SectionLen: 4 -; SYMS-NEXT: ParameterHashIndex: 0x0 -; SYMS-NEXT: TypeChkSectNum: 0x0 -; SYMS-NEXT: SymbolAlignmentLog2: 2 -; SYMS-NEXT: SymbolType: XTY_CM (0x3) -; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) -; SYMS-NEXT: StabInfoIndex: 0x0 -; SYMS-NEXT: StabSectNum: 0x0 -; SYMS-NEXT: } -; SYMS-NEXT: } -; SYMS-NEXT: Symbol { -; SYMS-NEXT: Index: [[#Index + 10]] -; SYMS-NEXT: Name: over_aligned -; SYMS-NEXT: Value (RelocatableAddress): 0x40 -; SYMS-NEXT: Section: .bss -; SYMS-NEXT: Type: 0x0 -; SYMS-NEXT: StorageClass: C_EXT (0x2) -; SYMS-NEXT: NumberOfAuxEntries: 1 -; SYMS-NEXT: CSECT Auxiliary Entry { -; SYMS-NEXT: Index: [[#Index + 11]] -; SYMS-NEXT: SectionLen: 8 -; SYMS-NEXT: ParameterHashIndex: 0x0 -; SYMS-NEXT: TypeChkSectNum: 0x0 -; SYMS-NEXT: SymbolAlignmentLog2: 5 -; SYMS-NEXT: SymbolType: XTY_CM (0x3) -; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) -; SYMS-NEXT: StabInfoIndex: 0x0 -; SYMS-NEXT: StabSectNum: 0x0 -; SYMS-NEXT: } -; SYMS-NEXT: } -; SYMS-NEXT: Symbol { -; SYMS-NEXT: Index: [[#Index + 12]] -; SYMS-NEXT: Name: array -; SYMS-NEXT: Value (RelocatableAddress): 0x48 -; SYMS-NEXT: Section: .bss -; SYMS-NEXT: Type: 0x0 -; SYMS-NEXT: StorageClass: C_EXT (0x2) -; SYMS-NEXT: NumberOfAuxEntries: 1 -; SYMS-NEXT: CSECT Auxiliary Entry { -; SYMS-NEXT: Index: [[#Index + 13]] -; SYMS-NEXT: SectionLen: 33 -; SYMS-NEXT: ParameterHashIndex: 0x0 -; SYMS-NEXT: TypeChkSectNum: 0x0 -; SYMS-NEXT: SymbolAlignmentLog2: 0 -; SYMS-NEXT: SymbolType: XTY_CM (0x3) -; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) -; SYMS-NEXT: StabInfoIndex: 0x0 -; SYMS-NEXT: StabSectNum: 0x0 -; SYMS-NEXT: } -; SYMS-NEXT: } -; SYMS-NEXT: ] diff --git a/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll b/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll --- a/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll +++ b/llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll @@ -1,15 +1,43 @@ +; This file tests the codegen of initialized and common variables in AIX +; assembly and XCOFF object files. + ; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s ; RUN: llc -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s +; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s +; RUN: llvm-readobj --section-headers --file-header %t.o | \ +; RUN: FileCheck --check-prefix=OBJ %s +; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s + +; RUN: not llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj < %s 2>&1 | \ +; RUN: FileCheck --check-prefix=XCOFF64 %s +; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet. + @ivar = local_unnamed_addr global i32 35, align 4 @llvar = local_unnamed_addr global i64 36, align 8 @svar = local_unnamed_addr global i16 37, align 2 @fvar = local_unnamed_addr global float 8.000000e+02, align 4 @dvar = local_unnamed_addr global double 9.000000e+02, align 8 @over_aligned = local_unnamed_addr global double 9.000000e+02, align 32 -@charr = local_unnamed_addr global [4 x i8] c"abcd", align 1 +@chrarray = local_unnamed_addr global [4 x i8] c"abcd", align 1 @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 +@a = common global i32 0, align 4 +@b = common global i64 0, align 8 +@c = common global i16 0, align 2 + +@d = common local_unnamed_addr global double 0.000000e+00, align 8 +@f = common local_unnamed_addr global float 0.000000e+00, align 4 + +@over_aligned_comm = common local_unnamed_addr global double 0.000000e+00, align 32 + +@array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1 + +; CHECK-NOT: .toc + +; CHECK: .csect .text[PR] +; CHECK-NEXT: .file + ; CHECK: .csect .data[RW] ; CHECK-NEXT: .globl ivar ; CHECK-NEXT: .align 2 @@ -41,8 +69,8 @@ ; CHECK-NEXT: over_aligned: ; CHECK-NEXT: .llong 4651127699538968576 -; CHECK: .globl charr -; CHECK-NEXT: charr: +; CHECK: .globl chrarray +; CHECK-NEXT: chrarray: ; CHECK-NEXT: .byte 97 ; CHECK-NEXT: .byte 98 ; CHECK-NEXT: .byte 99 @@ -55,3 +83,432 @@ ; CHECK-NEXT: .llong 4611686018427387904 ; CHECK-NEXT: .llong 4613937818241073152 ; CHECK-NEXT: .llong 4616189618054758400 + +; CHECK-NEXT: .comm a,4,2 +; CHECK-NEXT: .comm b,8,3 +; CHECK-NEXT: .comm c,2,1 +; CHECK-NEXT: .comm d,8,3 +; CHECK-NEXT: .comm f,4,2 +; CHECK-NEXT: .comm over_aligned_comm,8,5 +; CHECK-NEXT: .comm array,33,0 + +; OBJ: File: {{.*}}aix-xcoff-data.ll.tmp.o +; OBJ-NEXT: Format: aixcoff-rs6000 +; OBJ-NEXT: Arch: powerpc +; OBJ-NEXT: AddressSize: 32bit +; OBJ-NEXT: FileHeader { +; OBJ-NEXT: Magic: 0x1DF +; OBJ-NEXT: NumberOfSections: 3 +; OBJ-NEXT: TimeStamp: +; OBJ-NEXT: SymbolTableOffset: 0xDC +; OBJ-NEXT: SymbolTableEntries: 34 +; OBJ-NEXT: OptionalHeaderSize: 0x0 +; OBJ-NEXT: Flags: 0x0 +; OBJ-NEXT: } + +; OBJ: Sections [ +; OBJ: Section { +; OBJ-NEXT: Index: 1 +; OBJ-NEXT: Name: .text +; OBJ-NEXT: PhysicalAddress: 0x0 +; OBJ-NEXT: VirtualAddress: 0x0 +; OBJ-NEXT: Size: 0x0 +; OBJ-NEXT: RawDataOffset: 0x8C +; OBJ-NEXT: RelocationPointer: 0x0 +; OBJ-NEXT: LineNumberPointer: 0x0 +; OBJ-NEXT: NumberOfRelocations: 0 +; OBJ-NEXT: NumberOfLineNumbers: 0 +; OBJ-NEXT: Type: STYP_TEXT (0x20) +; OBJ-NEXT: } + +; OBJ: Section { +; OBJ-NEXT: Index: 2 +; OBJ-NEXT: Name: .data +; OBJ-NEXT: PhysicalAddress: 0x0 +; OBJ-NEXT: VirtualAddress: 0x0 +; OBJ-NEXT: Size: 0x50 +; OBJ-NEXT: RawDataOffset: 0x8C +; OBJ-NEXT: RelocationPointer: 0x0 +; OBJ-NEXT: LineNumberPointer: 0x0 +; OBJ-NEXT: NumberOfRelocations: 0 +; OBJ-NEXT: NumberOfLineNumbers: 0 +; OBJ-NEXT: Type: STYP_DATA (0x40) +; OBJ-NEXT: } + +; OBJ: Section { +; OBJ-NEXT: Index: 3 +; OBJ-NEXT: Name: .bss +; OBJ-NEXT: PhysicalAddress: 0x50 +; OBJ-NEXT: VirtualAddress: 0x50 +; OBJ-NEXT: Size: 0x5C +; OBJ-NEXT: RawDataOffset: 0x0 +; OBJ-NEXT: RelocationPointer: 0x0 +; OBJ-NEXT: LineNumberPointer: 0x0 +; OBJ-NEXT: NumberOfRelocations: 0 +; OBJ-NEXT: NumberOfLineNumbers: 0 +; OBJ-NEXT: Type: STYP_BSS (0x80) +; OBJ-NEXT: } +; OBJ: ] + +; SYMS: File: {{.*}}aix-xcoff-data.ll.tmp.o +; SYMS-NEXT: Format: aixcoff-rs6000 +; SYMS-NEXT: Arch: powerpc +; SYMS-NEXT: AddressSize: 32bit +; SYMS: Symbols [ +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX:]] +; SYMS-NEXT: Name: .text +; SYMS-NEXT: Value (RelocatableAddress): 0x0 +; SYMS-NEXT: Section: .text +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+1]] +; SYMS-NEXT: SectionLen: 0 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_SD (0x1) +; SYMS-NEXT: StorageMappingClass: XMC_PR (0x0) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+2]] +; SYMS-NEXT: Name: .data +; SYMS-NEXT: Value (RelocatableAddress): 0x0 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+3]] +; SYMS-NEXT: SectionLen: 80 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 5 +; SYMS-NEXT: SymbolType: XTY_SD (0x1) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+4]] +; SYMS-NEXT: Name: ivar +; SYMS-NEXT: Value (RelocatableAddress): 0x0 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+5]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+6]] +; SYMS-NEXT: Name: llvar +; SYMS-NEXT: Value (RelocatableAddress): 0x8 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+7]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+8]] +; SYMS-NEXT: Name: svar +; SYMS-NEXT: Value (RelocatableAddress): 0x10 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+9]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+10]] +; SYMS-NEXT: Name: fvar +; SYMS-NEXT: Value (RelocatableAddress): 0x14 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+11]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+12]] +; SYMS-NEXT: Name: dvar +; SYMS-NEXT: Value (RelocatableAddress): 0x18 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+13]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+14]] +; SYMS-NEXT: Name: over_aligned +; SYMS-NEXT: Value (RelocatableAddress): 0x20 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+15]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+16]] +; SYMS-NEXT: Name: chrarray +; SYMS-NEXT: Value (RelocatableAddress): 0x28 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+17]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+18]] +; SYMS-NEXT: Name: dblarr +; SYMS-NEXT: Value (RelocatableAddress): 0x30 +; SYMS-NEXT: Section: .data +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+19]] +; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]] +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_LD (0x2) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+20]] +; SYMS-NEXT: Name: a +; SYMS-NEXT: Value (RelocatableAddress): 0x50 +; SYMS-NEXT: Section: .bss +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+21]] +; SYMS-NEXT: SectionLen: 4 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 2 +; SYMS-NEXT: SymbolType: XTY_CM (0x3) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+22]] +; SYMS-NEXT: Name: b +; SYMS-NEXT: Value (RelocatableAddress): 0x58 +; SYMS-NEXT: Section: .bss +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+23]] +; SYMS-NEXT: SectionLen: 8 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 3 +; SYMS-NEXT: SymbolType: XTY_CM (0x3) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+24]] +; SYMS-NEXT: Name: c +; SYMS-NEXT: Value (RelocatableAddress): 0x60 +; SYMS-NEXT: Section: .bss +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+25]] +; SYMS-NEXT: SectionLen: 2 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 1 +; SYMS-NEXT: SymbolType: XTY_CM (0x3) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+26]] +; SYMS-NEXT: Name: d +; SYMS-NEXT: Value (RelocatableAddress): 0x68 +; SYMS-NEXT: Section: .bss +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+27]] +; SYMS-NEXT: SectionLen: 8 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 3 +; SYMS-NEXT: SymbolType: XTY_CM (0x3) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+28]] +; SYMS-NEXT: Name: f +; SYMS-NEXT: Value (RelocatableAddress): 0x70 +; SYMS-NEXT: Section: .bss +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+29]] +; SYMS-NEXT: SectionLen: 4 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 2 +; SYMS-NEXT: SymbolType: XTY_CM (0x3) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+30]] +; SYMS-NEXT: Name: over_aligned_comm +; SYMS-NEXT: Value (RelocatableAddress): 0x80 +; SYMS-NEXT: Section: .bss +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+31]] +; SYMS-NEXT: SectionLen: 8 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 5 +; SYMS-NEXT: SymbolType: XTY_CM (0x3) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } + +; SYMS: Symbol { +; SYMS-NEXT: Index: [[#INDX+32]] +; SYMS-NEXT: Name: array +; SYMS-NEXT: Value (RelocatableAddress): 0x88 +; SYMS-NEXT: Section: .bss +; SYMS-NEXT: Type: 0x0 +; SYMS-NEXT: StorageClass: C_EXT (0x2) +; SYMS-NEXT: NumberOfAuxEntries: 1 +; SYMS-NEXT: CSECT Auxiliary Entry { +; SYMS-NEXT: Index: [[#INDX+33]] +; SYMS-NEXT: SectionLen: 33 +; SYMS-NEXT: ParameterHashIndex: 0x0 +; SYMS-NEXT: TypeChkSectNum: 0x0 +; SYMS-NEXT: SymbolAlignmentLog2: 0 +; SYMS-NEXT: SymbolType: XTY_CM (0x3) +; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5) +; SYMS-NEXT: StabInfoIndex: 0x0 +; SYMS-NEXT: StabSectNum: 0x0 +; SYMS-NEXT: } +; SYMS-NEXT: } +; SYMS: ]