diff --git a/llvm/include/llvm/MC/MCSectionXCOFF.h b/llvm/include/llvm/MC/MCSectionXCOFF.h index babb2dcb24d16..4ad9aa76a2108 100644 --- a/llvm/include/llvm/MC/MCSectionXCOFF.h +++ b/llvm/include/llvm/MC/MCSectionXCOFF.h @@ -66,11 +66,6 @@ class MCSectionXCOFF final : public MCSection { XCOFF::StorageClass getStorageClass() const { return QualName->getStorageClass(); } - - XCOFF::VisibilityType getVisibilityType() const { - return QualName->getVisibilityType(); - } - XCOFF::SymbolType getCSectType() const { return Type; } MCSymbolXCOFF *getQualNameSymbol() const { return QualName; } diff --git a/llvm/lib/MC/XCOFFObjectWriter.cpp b/llvm/lib/MC/XCOFFObjectWriter.cpp index e0dee7e20d026..5047b5041aa75 100644 --- a/llvm/lib/MC/XCOFFObjectWriter.cpp +++ b/llvm/lib/MC/XCOFFObjectWriter.cpp @@ -69,11 +69,6 @@ struct Symbol { XCOFF::StorageClass getStorageClass() const { return MCSym->getStorageClass(); } - - XCOFF::VisibilityType getVisibilityType() const { - return MCSym->getVisibilityType(); - } - StringRef getSymbolTableName() const { return MCSym->getSymbolTableName(); } Symbol(const MCSymbolXCOFF *MCSym) : MCSym(MCSym), SymbolTableIndex(-1) {} }; @@ -574,12 +569,13 @@ void XCOFFObjectWriter::writeSymbolTableEntryForCsectMemberLabel( W.write(CSectionRef.Address + SymbolOffset); W.write(SectionIndex); // Basic/Derived type. See the description of the n_type field for symbol - // table entries for a detailed description. Since we support visibility, and - // all other bits are either optionally set or reserved, we only set bits 0-3 - // for symbol's visibility and leave other bits to zero. + // table entries for a detailed description. Since we don't yet support + // visibility, and all other bits are either optionally set or reserved, this + // is always zero. + // TODO FIXME How to assert a symbol's visibilty is default? // TODO Set the function indicator (bit 10, 0x0020) for functions // when debugging is enabled. - W.write(SymbolRef.getVisibilityType()); + W.write(0); W.write(SymbolRef.getStorageClass()); // Always 1 aux entry for now. W.write(1); @@ -610,12 +606,13 @@ void XCOFFObjectWriter::writeSymbolTableEntryForControlSection( // n_scnum W.write(SectionIndex); // Basic/Derived type. See the description of the n_type field for symbol - // table entries for a detailed description. Since we support visibility, and - // all other bits are either optionally set or reserved, we only set bits 0-3 - // for symbol's visibility and leave other bits to zero. + // table entries for a detailed description. Since we don't yet support + // visibility, and all other bits are either optionally set or reserved, this + // is always zero. + // TODO FIXME How to assert a symbol's visibilty is default? // TODO Set the function indicator (bit 10, 0x0020) for functions // when debugging is enabled. - W.write(CSectionRef.MCCsect->getVisibilityType()); + W.write(0); // n_sclass W.write(StorageClass); // Always 1 aux entry for now. diff --git a/llvm/test/CodeGen/PowerPC/aix-xcoff-visibility.ll b/llvm/test/CodeGen/PowerPC/aix-xcoff-visibility.ll index 42bdf5d22a2a9..04c2e0cfe22b8 100644 --- a/llvm/test/CodeGen/PowerPC/aix-xcoff-visibility.ll +++ b/llvm/test/CodeGen/PowerPC/aix-xcoff-visibility.ll @@ -3,16 +3,6 @@ ; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 -mattr=-altivec < %s |\ ; RUN: FileCheck %s -; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \ -; RUN: -mattr=-altivec -filetype=obj -o %t.o < %s -; RUN: llvm-readobj --symbols %t.o | \ -; RUN: FileCheck --check-prefix=XCOFF32 %s - -; RUN: not --crash llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff \ -; RUN: -mcpu=pwr4 -mattr=-altivec -filetype=obj -o %t.o 2>&1 < %s | \ -; RUN: FileCheck --check-prefix=XCOFF64 %s -; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet. - @b = global i32 0, align 4 @b_h = hidden global i32 0, align 4 @@ -66,446 +56,3 @@ declare hidden i32 @bar_h(i32*) ; CHECK: .weak zoo_weak_extern_h[DS],hidden ; CHECK: .extern .bar_h[PR],hidden ; CHECK: .extern bar_h[DS],hidden - -; XCOFF32: Symbols [ -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index:]] -; XCOFF32-NEXT: Name: .bar_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0x0 -; XCOFF32-NEXT: Section: N_UNDEF -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+1]] -; XCOFF32-NEXT: SectionLen: 0 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_ER (0x0) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+2]] -; XCOFF32-NEXT: Name: zoo_weak_extern_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0x0 -; XCOFF32-NEXT: Section: N_UNDEF -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_WEAKEXT (0x6F) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+3]] -; XCOFF32-NEXT: SectionLen: 0 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_ER (0x0) -; XCOFF32-NEXT: StorageMappingClass: XMC_DS (0xA) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+4]] -; XCOFF32-NEXT: Name: .zoo_weak_extern_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0x0 -; XCOFF32-NEXT: Section: N_UNDEF -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_WEAKEXT (0x6F) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+5]] -; XCOFF32-NEXT: SectionLen: 0 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_ER (0x0) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+6]] -; XCOFF32-NEXT: Name: bar_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0x0 -; XCOFF32-NEXT: Section: N_UNDEF -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+7]] -; XCOFF32-NEXT: SectionLen: 0 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_ER (0x0) -; XCOFF32-NEXT: StorageMappingClass: XMC_DS (0xA) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+8]] -; XCOFF32-NEXT: Name: .text -; XCOFF32-NEXT: Value (RelocatableAddress): 0x0 -; XCOFF32-NEXT: Section: .text -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_HIDEXT (0x6B) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+9]] -; XCOFF32-NEXT: SectionLen: 152 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 4 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+10]] -; XCOFF32-NEXT: Name: .foo -; XCOFF32-NEXT: Value (RelocatableAddress): 0x0 -; XCOFF32-NEXT: Section: .text -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+11]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 8 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+12]] -; XCOFF32-NEXT: Name: .foo_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0x10 -; XCOFF32-NEXT: Section: .text -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+13]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 8 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+14]] -; XCOFF32-NEXT: Name: .foo_protected -; XCOFF32-NEXT: Value (RelocatableAddress): 0x20 -; XCOFF32-NEXT: Section: .text -; XCOFF32-NEXT: Type: 0x3000 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+15]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 8 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+16]] -; XCOFF32-NEXT: Name: .foo_weak_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0x30 -; XCOFF32-NEXT: Section: .text -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_WEAKEXT (0x6F) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+17]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 8 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+18]] -; XCOFF32-NEXT: Name: .main -; XCOFF32-NEXT: Value (RelocatableAddress): 0x40 -; XCOFF32-NEXT: Section: .text -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+19]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 8 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_PR (0x0) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+20]] -; XCOFF32-NEXT: Name: .data -; XCOFF32-NEXT: Value (RelocatableAddress): 0x98 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_HIDEXT (0x6B) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+21]] -; XCOFF32-NEXT: SectionLen: 12 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_RW (0x5) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+22]] -; XCOFF32-NEXT: Name: b -; XCOFF32-NEXT: Value (RelocatableAddress): 0x98 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+23]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 20 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_RW (0x5) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+24]] -; XCOFF32-NEXT: Name: b_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0x9C -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+25]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 20 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_RW (0x5) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+26]] -; XCOFF32-NEXT: Name: foo_p -; XCOFF32-NEXT: Value (RelocatableAddress): 0xA0 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+27]] -; XCOFF32-NEXT: ContainingCsectSymbolIndex: 20 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 0 -; XCOFF32-NEXT: SymbolType: XTY_LD (0x2) -; XCOFF32-NEXT: StorageMappingClass: XMC_RW (0x5) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+28]] -; XCOFF32-NEXT: Name: foo -; XCOFF32-NEXT: Value (RelocatableAddress): 0xA4 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+29]] -; XCOFF32-NEXT: SectionLen: 12 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_DS (0xA) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+30]] -; XCOFF32-NEXT: Name: foo_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0xB0 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+31]] -; XCOFF32-NEXT: SectionLen: 12 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_DS (0xA) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+32]] -; XCOFF32-NEXT: Name: foo_protected -; XCOFF32-NEXT: Value (RelocatableAddress): 0xBC -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x3000 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+33]] -; XCOFF32-NEXT: SectionLen: 12 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_DS (0xA) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+34]] -; XCOFF32-NEXT: Name: foo_weak_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0xC8 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x2000 -; XCOFF32-NEXT: StorageClass: C_WEAKEXT (0x6F) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+35]] -; XCOFF32-NEXT: SectionLen: 12 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_DS (0xA) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+36]] -; XCOFF32-NEXT: Name: main -; XCOFF32-NEXT: Value (RelocatableAddress): 0xD4 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_EXT (0x2) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+37]] -; XCOFF32-NEXT: SectionLen: 12 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_DS (0xA) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+38]] -; XCOFF32-NEXT: Name: TOC -; XCOFF32-NEXT: Value (RelocatableAddress): 0xE0 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_HIDEXT (0x6B) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+39]] -; XCOFF32-NEXT: SectionLen: 0 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_TC0 (0xF) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+40]] -; XCOFF32-NEXT: Name: b_h -; XCOFF32-NEXT: Value (RelocatableAddress): 0xE0 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_HIDEXT (0x6B) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+41]] -; XCOFF32-NEXT: SectionLen: 4 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_TC (0x3) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: Symbol { -; XCOFF32-NEXT: Index: [[#Index+42]] -; XCOFF32-NEXT: Name: foo_p -; XCOFF32-NEXT: Value (RelocatableAddress): 0xE4 -; XCOFF32-NEXT: Section: .data -; XCOFF32-NEXT: Type: 0x0 -; XCOFF32-NEXT: StorageClass: C_HIDEXT (0x6B) -; XCOFF32-NEXT: NumberOfAuxEntries: 1 -; XCOFF32-NEXT: CSECT Auxiliary Entry { -; XCOFF32-NEXT: Index: [[#Index+43]] -; XCOFF32-NEXT: SectionLen: 4 -; XCOFF32-NEXT: ParameterHashIndex: 0x0 -; XCOFF32-NEXT: TypeChkSectNum: 0x0 -; XCOFF32-NEXT: SymbolAlignmentLog2: 2 -; XCOFF32-NEXT: SymbolType: XTY_SD (0x1) -; XCOFF32-NEXT: StorageMappingClass: XMC_TC (0x3) -; XCOFF32-NEXT: StabInfoIndex: 0x0 -; XCOFF32-NEXT: StabSectNum: 0x0 -; XCOFF32-NEXT: } -; XCOFF32-NEXT: } -; XCOFF32-NEXT: ]