## This file tests the ability of llvm-readobj to display the symbol table for a ## 64-bit XCOFF object file. # RUN: yaml2obj %s -o %t # RUN: llvm-readobj --symbols %t | FileCheck --check-prefix=SYMBOL64 %s --- !XCOFF FileHeader: MagicNumber: 0x1F7 Sections: - Name: .text Symbols: ## The C_FILE symbol with File auxiliary entries. - Name: .file Value: 0x0 Section: N_DEBUG Type: 0x0 StorageClass: C_FILE NumberOfAuxEntries: 3 AuxEntries: - Type: AUX_FILE FileNameOrString: "test" FileStringType: XFT_FN - Type: AUX_FILE FileNameOrString: "foo" FileStringType: XFT_CT - Type: AUX_FILE FileNameOrString: "bar" FileStringType: XFT_CV ## The C_HIDEXT symbol with a CSECT auxiliary entry. - Name: .fun Value: 0x0 Section: .text Type: 0x0 StorageClass: C_HIDEXT NumberOfAuxEntries: 1 AuxEntries: - Type: AUX_CSECT ParameterHashIndex: 2 TypeChkSectNum: 3 SymbolAlignmentAndType: 1 StorageMappingClass: XMC_PR SectionOrLengthLo: 4 SectionOrLengthHi: 5 ## The C_EXT symbol with a CSECT auxiliary entry. - Name: .fun1 Value: 0x0 Section: .text Type: 0x20 StorageClass: C_EXT NumberOfAuxEntries: 1 AuxEntries: - Type: AUX_CSECT ParameterHashIndex: 2 TypeChkSectNum: 3 SymbolAlignmentAndType: 1 StorageMappingClass: XMC_PR SectionOrLengthLo: 4 SectionOrLengthHi: 5 ## The C_WEAKEXT symbol with a CSECT auxiliary entry. - Name: .fun2 Value: 0x0 Section: .text Type: 0x20 StorageClass: C_WEAKEXT NumberOfAuxEntries: 1 AuxEntries: - Type: AUX_CSECT ParameterHashIndex: 8 TypeChkSectNum: 9 SymbolAlignmentAndType: 1 StorageMappingClass: XMC_PR SectionOrLengthLo: 2 SectionOrLengthHi: 3 ## The C_WEAKEXT symbol with a Function auxiliary entry and a CSECT auxiliary entry. - Name: .fun3 Value: 0x0 Section: N_DEBUG Type: 0x20 StorageClass: C_WEAKEXT NumberOfAuxEntries: 2 AuxEntries: - Type: AUX_FCN SizeOfFunction: 3 SymIdxOfNextBeyond: 4 PtrToLineNum: 5 - Type: AUX_CSECT ParameterHashIndex: 2 TypeChkSectNum: 3 SymbolAlignmentAndType: 1 StorageMappingClass: XMC_PR SectionOrLengthLo: 4 SectionOrLengthHi: 5 ## The C_EXT symbol with a Function auxiliary entry, a CSECT auxiliary entry, and an Exception auxiliary entry. - Name: .fun4 Value: 0x0 Section: .text Type: 0x20 StorageClass: C_EXT NumberOfAuxEntries: 3 AuxEntries: - Type: AUX_FCN SizeOfFunction: 3 SymIdxOfNextBeyond: 4 PtrToLineNum: 5 - Type: AUX_EXCEPT OffsetToExceptionTbl: 2 SizeOfFunction: 3 SymIdxOfNextBeyond: 4 - Type: AUX_CSECT ParameterHashIndex: 2 TypeChkSectNum: 3 SymbolAlignmentAndType: 1 StorageMappingClass: XMC_PR SectionOrLengthLo: 4 SectionOrLengthHi: 5 ## The C_DWARF symbol with a SECT auxiliary entry. - Name: .fun5 Section: N_DEBUG StorageClass: C_DWARF NumberOfAuxEntries: 1 AuxEntries: - Type: AUX_SECT LengthOfSectionPortion: 2 NumberOfRelocEnt: 3 ## The C_BLOCK symbol with a Block auxiliary entry. - Name: .fun6 StorageClass: C_BLOCK NumberOfAuxEntries: 1 AuxEntries: - Type: AUX_SYM LineNum: 3 ## The C_FCN symbol with a Block auxiliary entry. - Name: .fun7 StorageClass: C_FCN NumberOfAuxEntries: 1 AuxEntries: - Type: AUX_SYM LineNum: 3 # SYMBOL64: Symbols [ # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 0 # SYMBOL64-NEXT: Name: .file # SYMBOL64-NEXT: Value (SymbolTableIndex): 0x0 # SYMBOL64-NEXT: Section: N_DEBUG # SYMBOL64-NEXT: Source Language ID: TB_C (0x0) # SYMBOL64-NEXT: CPU Version ID: 0x0 # SYMBOL64-NEXT: StorageClass: C_FILE (0x67) # SYMBOL64-NEXT: NumberOfAuxEntries: 3 # SYMBOL64-NEXT: File Auxiliary Entry { # SYMBOL64-NEXT: Index: 1 # SYMBOL64-NEXT: Name: test # SYMBOL64-NEXT: Type: XFT_FN (0x0) # SYMBOL64-NEXT: Auxiliary Type: AUX_FILE (0xFC) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: File Auxiliary Entry { # SYMBOL64-NEXT: Index: 2 # SYMBOL64-NEXT: Name: foo # SYMBOL64-NEXT: Type: XFT_CT (0x1) # SYMBOL64-NEXT: Auxiliary Type: AUX_FILE (0xFC) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: File Auxiliary Entry { # SYMBOL64-NEXT: Index: 3 # SYMBOL64-NEXT: Name: bar # SYMBOL64-NEXT: Type: XFT_CV (0x2) # SYMBOL64-NEXT: Auxiliary Type: AUX_FILE (0xFC) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 4 # SYMBOL64-NEXT: Name: .fun # SYMBOL64-NEXT: Value (RelocatableAddress): 0x0 # SYMBOL64-NEXT: Section: .text # SYMBOL64-NEXT: Type: 0x0 # SYMBOL64-NEXT: StorageClass: C_HIDEXT (0x6B) # SYMBOL64-NEXT: NumberOfAuxEntries: 1 # SYMBOL64-NEXT: CSECT Auxiliary Entry { # SYMBOL64-NEXT: Index: 5 # SYMBOL64-NEXT: SectionLen: 21474836484 # SYMBOL64-NEXT: ParameterHashIndex: 0x2 # SYMBOL64-NEXT: TypeChkSectNum: 0x3 # SYMBOL64-NEXT: SymbolAlignmentLog2: 0 # SYMBOL64-NEXT: SymbolType: XTY_SD (0x1) # SYMBOL64-NEXT: StorageMappingClass: XMC_PR (0x0) # SYMBOL64-NEXT: Auxiliary Type: AUX_CSECT (0xFB) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 6 # SYMBOL64-NEXT: Name: .fun1 # SYMBOL64-NEXT: Value (RelocatableAddress): 0x0 # SYMBOL64-NEXT: Section: .text # SYMBOL64-NEXT: Type: 0x20 # SYMBOL64-NEXT: StorageClass: C_EXT (0x2) # SYMBOL64-NEXT: NumberOfAuxEntries: 1 # SYMBOL64-NEXT: CSECT Auxiliary Entry { # SYMBOL64-NEXT: Index: 7 # SYMBOL64-NEXT: SectionLen: 21474836484 # SYMBOL64-NEXT: ParameterHashIndex: 0x2 # SYMBOL64-NEXT: TypeChkSectNum: 0x3 # SYMBOL64-NEXT: SymbolAlignmentLog2: 0 # SYMBOL64-NEXT: SymbolType: XTY_SD (0x1) # SYMBOL64-NEXT: StorageMappingClass: XMC_PR (0x0) # SYMBOL64-NEXT: Auxiliary Type: AUX_CSECT (0xFB) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 8 # SYMBOL64-NEXT: Name: .fun2 # SYMBOL64-NEXT: Value (RelocatableAddress): 0x0 # SYMBOL64-NEXT: Section: .text # SYMBOL64-NEXT: Type: 0x20 # SYMBOL64-NEXT: StorageClass: C_WEAKEXT (0x6F) # SYMBOL64-NEXT: NumberOfAuxEntries: 1 # SYMBOL64-NEXT: CSECT Auxiliary Entry { # SYMBOL64-NEXT: Index: 9 # SYMBOL64-NEXT: SectionLen: 12884901890 # SYMBOL64-NEXT: ParameterHashIndex: 0x8 # SYMBOL64-NEXT: TypeChkSectNum: 0x9 # SYMBOL64-NEXT: SymbolAlignmentLog2: 0 # SYMBOL64-NEXT: SymbolType: XTY_SD (0x1) # SYMBOL64-NEXT: StorageMappingClass: XMC_PR (0x0) # SYMBOL64-NEXT: Auxiliary Type: AUX_CSECT (0xFB) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 10 # SYMBOL64-NEXT: Name: .fun3 # SYMBOL64-NEXT: Value (RelocatableAddress): 0x0 # SYMBOL64-NEXT: Section: N_DEBUG # SYMBOL64-NEXT: Type: 0x20 # SYMBOL64-NEXT: StorageClass: C_WEAKEXT (0x6F) # SYMBOL64-NEXT: NumberOfAuxEntries: 2 # SYMBOL64-NEXT: Function Auxiliary Entry { # SYMBOL64-NEXT: Index: 11 # SYMBOL64-NEXT: SizeOfFunction: 0x3 # SYMBOL64-NEXT: PointerToLineNum: 0x5 # SYMBOL64-NEXT: SymbolIndexOfNextBeyond: 4 # SYMBOL64-NEXT: Auxiliary Type: AUX_FCN (0xFE) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: CSECT Auxiliary Entry { # SYMBOL64-NEXT: Index: 12 # SYMBOL64-NEXT: SectionLen: 21474836484 # SYMBOL64-NEXT: ParameterHashIndex: 0x2 # SYMBOL64-NEXT: TypeChkSectNum: 0x3 # SYMBOL64-NEXT: SymbolAlignmentLog2: 0 # SYMBOL64-NEXT: SymbolType: XTY_SD (0x1) # SYMBOL64-NEXT: StorageMappingClass: XMC_PR (0x0) # SYMBOL64-NEXT: Auxiliary Type: AUX_CSECT (0xFB) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 13 # SYMBOL64-NEXT: Name: .fun4 # SYMBOL64-NEXT: Value (RelocatableAddress): 0x0 # SYMBOL64-NEXT: Section: .text # SYMBOL64-NEXT: Type: 0x20 # SYMBOL64-NEXT: StorageClass: C_EXT (0x2) # SYMBOL64-NEXT: NumberOfAuxEntries: 3 # SYMBOL64-NEXT: Function Auxiliary Entry { # SYMBOL64-NEXT: Index: 14 # SYMBOL64-NEXT: SizeOfFunction: 0x3 # SYMBOL64-NEXT: PointerToLineNum: 0x5 # SYMBOL64-NEXT: SymbolIndexOfNextBeyond: 4 # SYMBOL64-NEXT: Auxiliary Type: AUX_FCN (0xFE) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Exception Auxiliary Entry { # SYMBOL64-NEXT: Index: 15 # SYMBOL64-NEXT: OffsetToExceptionTable: 0x2 # SYMBOL64-NEXT: SizeOfFunction: 0x3 # SYMBOL64-NEXT: SymbolIndexOfNextBeyond: 4 # SYMBOL64-NEXT: Auxiliary Type: AUX_EXCEPT (0xFF) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: CSECT Auxiliary Entry { # SYMBOL64-NEXT: Index: 16 # SYMBOL64-NEXT: SectionLen: 21474836484 # SYMBOL64-NEXT: ParameterHashIndex: 0x2 # SYMBOL64-NEXT: TypeChkSectNum: 0x3 # SYMBOL64-NEXT: SymbolAlignmentLog2: 0 # SYMBOL64-NEXT: SymbolType: XTY_SD (0x1) # SYMBOL64-NEXT: StorageMappingClass: XMC_PR (0x0) # SYMBOL64-NEXT: Auxiliary Type: AUX_CSECT (0xFB) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 17 # SYMBOL64-NEXT: Name: .fun5 # SYMBOL64-NEXT: Value (OffsetInDWARF): 0x0 # SYMBOL64-NEXT: Section: N_DEBUG # SYMBOL64-NEXT: Type: 0x0 # SYMBOL64-NEXT: StorageClass: C_DWARF (0x70) # SYMBOL64-NEXT: NumberOfAuxEntries: 1 # SYMBOL64-NEXT: Sect Auxiliary Entry For DWARF { # SYMBOL64-NEXT: Index: 18 # SYMBOL64-NEXT: LengthOfSectionPortion: 0x2 # SYMBOL64-NEXT: NumberOfRelocEntries: 3 # SYMBOL64-NEXT: Auxiliary Type: AUX_SECT (0xFA) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 19 # SYMBOL64-NEXT: Name: .fun6 # SYMBOL64-NEXT: Value (RelocatableAddress): 0x0 # SYMBOL64-NEXT: Section: N_UNDEF # SYMBOL64-NEXT: Type: 0x0 # SYMBOL64-NEXT: StorageClass: C_BLOCK (0x64) # SYMBOL64-NEXT: NumberOfAuxEntries: 1 # SYMBOL64-NEXT: Block Auxiliary Entry { # SYMBOL64-NEXT: Index: 20 # SYMBOL64-NEXT: LineNumber: 0x3 # SYMBOL64-NEXT: Auxiliary Type: AUX_SYM (0xFD) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: Symbol { # SYMBOL64-NEXT: Index: 21 # SYMBOL64-NEXT: Name: .fun7 # SYMBOL64-NEXT: Value (RelocatableAddress): 0x0 # SYMBOL64-NEXT: Section: N_UNDEF # SYMBOL64-NEXT: Type: 0x0 # SYMBOL64-NEXT: StorageClass: C_FCN (0x65) # SYMBOL64-NEXT: NumberOfAuxEntries: 1 # SYMBOL64-NEXT: Block Auxiliary Entry { # SYMBOL64-NEXT: Index: 22 # SYMBOL64-NEXT: LineNumber: 0x3 # SYMBOL64-NEXT: Auxiliary Type: AUX_SYM (0xFD) # SYMBOL64-NEXT: } # SYMBOL64-NEXT: } # SYMBOL64-NEXT: ]