| ## Check that we are able to dump auxiliary symbols. |
| ## 1. We can use default values for the fields of auxiliary symbols. |
| ## 2. We can explicitly specify all fields for auxiliary symbols. |
| |
| ## Case1: check the default behaviour in XCOFF32. |
| # RUN: yaml2obj %s --docnum=1 -o %t1 |
| # RUN: llvm-readobj --syms %t1 | FileCheck %s --check-prefix=DEFAULT32 |
| |
| # DEFAULT32: Symbols [ |
| # DEFAULT32-NEXT: Symbol { |
| # DEFAULT32-NEXT: Index: 0 |
| # DEFAULT32-NEXT: Name: aux_fcn_csect |
| # DEFAULT32-NEXT: Value (RelocatableAddress): 0x0 |
| # DEFAULT32-NEXT: Section: N_UNDEF |
| # DEFAULT32-NEXT: Type: 0x20 |
| # DEFAULT32-NEXT: StorageClass: C_EXT (0x2) |
| # DEFAULT32-NEXT: NumberOfAuxEntries: 2 |
| # DEFAULT32-NEXT: Function Auxiliary Entry { |
| # DEFAULT32-NEXT: Index: 1 |
| # DEFAULT32-NEXT: OffsetToExceptionTable: 0x0 |
| # DEFAULT32-NEXT: SizeOfFunction: 0x0 |
| # DEFAULT32-NEXT: PointerToLineNum: 0x0 |
| # DEFAULT32-NEXT: SymbolIndexOfNextBeyond: 0 |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: CSECT Auxiliary Entry { |
| # DEFAULT32-NEXT: Index: 2 |
| # DEFAULT32-NEXT: SectionLen: 0 |
| # DEFAULT32-NEXT: ParameterHashIndex: 0x0 |
| # DEFAULT32-NEXT: TypeChkSectNum: 0x0 |
| # DEFAULT32-NEXT: SymbolAlignmentLog2: 0 |
| # DEFAULT32-NEXT: SymbolType: XTY_ER (0x0) |
| # DEFAULT32-NEXT: StorageMappingClass: XMC_PR (0x0) |
| # DEFAULT32-NEXT: StabInfoIndex: 0x0 |
| # DEFAULT32-NEXT: StabSectNum: 0x0 |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: Symbol { |
| # DEFAULT32-NEXT: Index: 3 |
| # DEFAULT32-NEXT: Name: aux_stat |
| # DEFAULT32-NEXT: Value (RelocatableAddress): 0x0 |
| # DEFAULT32-NEXT: Section: N_UNDEF |
| # DEFAULT32-NEXT: Type: 0x0 |
| # DEFAULT32-NEXT: StorageClass: C_STAT (0x3) |
| # DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # DEFAULT32-NEXT: Sect Auxiliary Entry For Stat { |
| # DEFAULT32-NEXT: Index: 4 |
| # DEFAULT32-NEXT: SectionLength: 0 |
| # DEFAULT32-NEXT: NumberOfRelocEnt: 0 |
| # DEFAULT32-NEXT: NumberOfLineNum: 0 |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: Symbol { |
| # DEFAULT32-NEXT: Index: 5 |
| # DEFAULT32-NEXT: Name: aux_sym |
| # DEFAULT32-NEXT: Value (RelocatableAddress): 0x0 |
| # DEFAULT32-NEXT: Section: N_UNDEF |
| # DEFAULT32-NEXT: Type: 0x0 |
| # DEFAULT32-NEXT: StorageClass: C_BLOCK (0x64) |
| # DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # DEFAULT32-NEXT: Block Auxiliary Entry { |
| # DEFAULT32-NEXT: Index: 6 |
| # DEFAULT32-NEXT: LineNumber (High 2 Bytes): 0x0 |
| # DEFAULT32-NEXT: LineNumber (Low 2 Bytes): 0x0 |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: Symbol { |
| # DEFAULT32-NEXT: Index: 7 |
| # DEFAULT32-NEXT: Name: aux_file |
| # DEFAULT32-NEXT: Value (SymbolTableIndex): 0x0 |
| # DEFAULT32-NEXT: Section: N_UNDEF |
| # DEFAULT32-NEXT: Source Language ID: TB_C (0x0) |
| # DEFAULT32-NEXT: CPU Version ID: 0x0 |
| # DEFAULT32-NEXT: StorageClass: C_FILE (0x67) |
| # DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # DEFAULT32-NEXT: File Auxiliary Entry { |
| # DEFAULT32-NEXT: Index: 8 |
| # DEFAULT32-NEXT: Name: |
| # DEFAULT32-NEXT: Type: XFT_FN (0x0) |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: Symbol { |
| # DEFAULT32-NEXT: Index: 9 |
| # DEFAULT32-NEXT: Name: aux_sect |
| # DEFAULT32-NEXT: Value (OffsetInDWARF): 0x0 |
| # DEFAULT32-NEXT: Section: N_UNDEF |
| # DEFAULT32-NEXT: Type: 0x0 |
| # DEFAULT32-NEXT: StorageClass: C_DWARF (0x70) |
| # DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # DEFAULT32-NEXT: Sect Auxiliary Entry For DWARF { |
| # DEFAULT32-NEXT: Index: 10 |
| # DEFAULT32-NEXT: LengthOfSectionPortion: 0x0 |
| # DEFAULT32-NEXT: NumberOfRelocEntries: 0 |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: } |
| # DEFAULT32-NEXT: ] |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Symbols: |
| - Name: aux_fcn_csect |
| StorageClass: C_EXT |
| Type: 0x20 |
| AuxEntries: |
| - Type: AUX_FCN |
| OffsetToExceptionTbl: [[OFFTOEXP=<none>]] |
| SizeOfFunction: [[SIZEOFFUN=<none>]] |
| SymIdxOfNextBeyond: [[SYMIDXOFNEXT=<none>]] |
| PtrToLineNum: [[PTRTOLINE=<none>]] |
| - Type: AUX_CSECT |
| ParameterHashIndex: [[HASHIDX=<none>]] |
| TypeChkSectNum: [[TYPECHKNUM=<none>]] |
| SymbolAlignmentAndType: [[SYMALIGN=<none>]] |
| StorageMappingClass: [[STORMAPCLASS=<none>]] |
| SectionOrLength: [[SECTORLEN=<none>]] |
| StabInfoIndex: [[STABIDX=<none>]] |
| StabSectNum: [[STABNUM=<none>]] |
| - Name: aux_stat |
| StorageClass: C_STAT |
| AuxEntries: |
| - Type: AUX_STAT |
| SectionLength: [[SECTLEN=<none>]] |
| NumberOfRelocEnt: [[NUMOFREL=<none>]] |
| NumberOfLineNum: [[NUMOFLINE=<none>]] |
| - Name: aux_sym |
| StorageClass: C_BLOCK |
| AuxEntries: |
| - Type: AUX_SYM |
| LineNumHi: [[LINEHI=<none>]] |
| LineNumLo: [[LINELO=<none>]] |
| - Name: aux_file |
| StorageClass: C_FILE |
| AuxEntries: |
| - Type: AUX_FILE |
| FileNameOrString: [[FILENAME=<none>]] |
| FileStringType: [[FILETYPE=<none>]] |
| - Name: aux_sect |
| StorageClass: C_DWARF |
| AuxEntries: |
| - Type: AUX_SECT |
| LengthOfSectionPortion: [[LENOFSEC=<none>]] |
| NumberOfRelocEnt: [[NUMOFRELOC=<none>]] |
| |
| ## Case2: check the non-default behaviour in XCOFF32. |
| # RUN: yaml2obj %s --docnum=1 -o %t2 -DOFFTOEXP=2 -DSIZEOFFUN=3 \ |
| # RUN: -DSYMIDXOFNEXT=4 -DPTRTOLINE=5 -DHASHIDX=2 -DTYPECHKNUM=3 \ |
| # RUN: -DSYMALIGN=4 -DSTORMAPCLASS=XMC_RO -DSECTORLEN=6 -DSTABIDX=7 \ |
| # RUN: -DSTABNUM=8 -DSECTLEN=2 -DNUMOFREL=3 -DNUMOFLINE=4 \ |
| # RUN: -DLINEHI=2 -DLINELO=3 -DFILENAME='fname' -DFILETYPE=XFT_CD \ |
| # RUN: -DLENOFSEC=2 -DNUMOFRELOC=3 |
| # RUN: llvm-readobj --syms %t2 | FileCheck %s --check-prefix=NON-DEFAULT32 |
| |
| # NON-DEFAULT32: Symbols [ |
| # NON-DEFAULT32-NEXT: Symbol { |
| # NON-DEFAULT32-NEXT: Index: 0 |
| # NON-DEFAULT32-NEXT: Name: aux_fcn_csect |
| # NON-DEFAULT32-NEXT: Value (RelocatableAddress): 0x0 |
| # NON-DEFAULT32-NEXT: Section: N_UNDEF |
| # NON-DEFAULT32-NEXT: Type: 0x20 |
| # NON-DEFAULT32-NEXT: StorageClass: C_EXT (0x2) |
| # NON-DEFAULT32-NEXT: NumberOfAuxEntries: 2 |
| # NON-DEFAULT32-NEXT: Function Auxiliary Entry { |
| # NON-DEFAULT32-NEXT: Index: 1 |
| # NON-DEFAULT32-NEXT: OffsetToExceptionTable: 0x2 |
| # NON-DEFAULT32-NEXT: SizeOfFunction: 0x3 |
| # NON-DEFAULT32-NEXT: PointerToLineNum: 0x5 |
| # NON-DEFAULT32-NEXT: SymbolIndexOfNextBeyond: 4 |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: CSECT Auxiliary Entry { |
| # NON-DEFAULT32-NEXT: Index: 2 |
| # NON-DEFAULT32-NEXT: SectionLen: 6 |
| # NON-DEFAULT32-NEXT: ParameterHashIndex: 0x2 |
| # NON-DEFAULT32-NEXT: TypeChkSectNum: 0x3 |
| # NON-DEFAULT32-NEXT: SymbolAlignmentLog2: 0 |
| # NON-DEFAULT32-NEXT: SymbolType: 0x4 |
| # NON-DEFAULT32-NEXT: StorageMappingClass: XMC_RO (0x1) |
| # NON-DEFAULT32-NEXT: StabInfoIndex: 0x7 |
| # NON-DEFAULT32-NEXT: StabSectNum: 0x8 |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: Symbol { |
| # NON-DEFAULT32-NEXT: Index: 3 |
| # NON-DEFAULT32-NEXT: Name: aux_stat |
| # NON-DEFAULT32-NEXT: Value (RelocatableAddress): 0x0 |
| # NON-DEFAULT32-NEXT: Section: N_UNDEF |
| # NON-DEFAULT32-NEXT: Type: 0x0 |
| # NON-DEFAULT32-NEXT: StorageClass: C_STAT (0x3) |
| # NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # NON-DEFAULT32-NEXT: Sect Auxiliary Entry For Stat { |
| # NON-DEFAULT32-NEXT: Index: 4 |
| # NON-DEFAULT32-NEXT: SectionLength: 2 |
| # NON-DEFAULT32-NEXT: NumberOfRelocEnt: 3 |
| # NON-DEFAULT32-NEXT: NumberOfLineNum: 4 |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: Symbol { |
| # NON-DEFAULT32-NEXT: Index: 5 |
| # NON-DEFAULT32-NEXT: Name: aux_sym |
| # NON-DEFAULT32-NEXT: Value (RelocatableAddress): 0x0 |
| # NON-DEFAULT32-NEXT: Section: N_UNDEF |
| # NON-DEFAULT32-NEXT: Type: 0x0 |
| # NON-DEFAULT32-NEXT: StorageClass: C_BLOCK (0x64) |
| # NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # NON-DEFAULT32-NEXT: Block Auxiliary Entry { |
| # NON-DEFAULT32-NEXT: Index: 6 |
| # NON-DEFAULT32-NEXT: LineNumber (High 2 Bytes): 0x2 |
| # NON-DEFAULT32-NEXT: LineNumber (Low 2 Bytes): 0x3 |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: Symbol { |
| # NON-DEFAULT32-NEXT: Index: 7 |
| # NON-DEFAULT32-NEXT: Name: aux_file |
| # NON-DEFAULT32-NEXT: Value (SymbolTableIndex): 0x0 |
| # NON-DEFAULT32-NEXT: Section: N_UNDEF |
| # NON-DEFAULT32-NEXT: Source Language ID: TB_C (0x0) |
| # NON-DEFAULT32-NEXT: CPU Version ID: 0x0 |
| # NON-DEFAULT32-NEXT: StorageClass: C_FILE (0x67) |
| # NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # NON-DEFAULT32-NEXT: File Auxiliary Entry { |
| # NON-DEFAULT32-NEXT: Index: 8 |
| # NON-DEFAULT32-NEXT: Name: fname |
| # NON-DEFAULT32-NEXT: Type: XFT_CD (0x80) |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: Symbol { |
| # NON-DEFAULT32-NEXT: Index: 9 |
| # NON-DEFAULT32-NEXT: Name: aux_sect |
| # NON-DEFAULT32-NEXT: Value (OffsetInDWARF): 0x0 |
| # NON-DEFAULT32-NEXT: Section: N_UNDEF |
| # NON-DEFAULT32-NEXT: Type: 0x0 |
| # NON-DEFAULT32-NEXT: StorageClass: C_DWARF (0x70) |
| # NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1 |
| # NON-DEFAULT32-NEXT: Sect Auxiliary Entry For DWARF { |
| # NON-DEFAULT32-NEXT: Index: 10 |
| # NON-DEFAULT32-NEXT: LengthOfSectionPortion: 0x2 |
| # NON-DEFAULT32-NEXT: NumberOfRelocEntries: 3 |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: } |
| # NON-DEFAULT32-NEXT: ] |
| |
| ## Case3: check the default behaviour in XCOFF64. |
| # RUN: yaml2obj %s --docnum=2 -o %t3 |
| # RUN: llvm-readobj --syms %t3 | FileCheck %s --check-prefix=DEFAULT64 |
| |
| # DEFAULT64: Symbols [ |
| # DEFAULT64-NEXT: Symbol { |
| # DEFAULT64-NEXT: Index: 0 |
| # DEFAULT64-NEXT: Name: aux_except_fcn_csect |
| # DEFAULT64-NEXT: Value (RelocatableAddress): 0x0 |
| # DEFAULT64-NEXT: Section: N_UNDEF |
| # DEFAULT64-NEXT: Type: 0x20 |
| # DEFAULT64-NEXT: StorageClass: C_EXT (0x2) |
| # DEFAULT64-NEXT: NumberOfAuxEntries: 3 |
| # DEFAULT64-NEXT: Exception Auxiliary Entry { |
| # DEFAULT64-NEXT: Index: 1 |
| # DEFAULT64-NEXT: OffsetToExceptionTable: 0x0 |
| # DEFAULT64-NEXT: SizeOfFunction: 0x0 |
| # DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 0 |
| # DEFAULT64-NEXT: Auxiliary Type: AUX_EXCEPT (0xFF) |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: Function Auxiliary Entry { |
| # DEFAULT64-NEXT: Index: 2 |
| # DEFAULT64-NEXT: SizeOfFunction: 0x0 |
| # DEFAULT64-NEXT: PointerToLineNum: 0x0 |
| # DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 0 |
| # DEFAULT64-NEXT: Auxiliary Type: AUX_FCN (0xFE) |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: CSECT Auxiliary Entry { |
| # DEFAULT64-NEXT: Index: 3 |
| # DEFAULT64-NEXT: SectionLen: 0 |
| # DEFAULT64-NEXT: ParameterHashIndex: 0x0 |
| # DEFAULT64-NEXT: TypeChkSectNum: 0x0 |
| # DEFAULT64-NEXT: SymbolAlignmentLog2: 0 |
| # DEFAULT64-NEXT: SymbolType: XTY_ER (0x0) |
| # DEFAULT64-NEXT: StorageMappingClass: XMC_PR (0x0) |
| # DEFAULT64-NEXT: Auxiliary Type: AUX_CSECT (0xFB) |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: Symbol { |
| # DEFAULT64-NEXT: Index: 4 |
| # DEFAULT64-NEXT: Name: aux_sym |
| # DEFAULT64-NEXT: Value (RelocatableAddress): 0x0 |
| # DEFAULT64-NEXT: Section: N_UNDEF |
| # DEFAULT64-NEXT: Type: 0x0 |
| # DEFAULT64-NEXT: StorageClass: C_BLOCK (0x64) |
| # DEFAULT64-NEXT: NumberOfAuxEntries: 1 |
| # DEFAULT64-NEXT: Block Auxiliary Entry { |
| # DEFAULT64-NEXT: Index: 5 |
| # DEFAULT64-NEXT: LineNumber: 0x0 |
| # DEFAULT64-NEXT: Auxiliary Type: AUX_SYM (0xFD) |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: Symbol { |
| # DEFAULT64-NEXT: Index: 6 |
| # DEFAULT64-NEXT: Name: aux_file |
| # DEFAULT64-NEXT: Value (SymbolTableIndex): 0x0 |
| # DEFAULT64-NEXT: Section: N_UNDEF |
| # DEFAULT64-NEXT: Source Language ID: TB_C (0x0) |
| # DEFAULT64-NEXT: CPU Version ID: 0x0 |
| # DEFAULT64-NEXT: StorageClass: C_FILE (0x67) |
| # DEFAULT64-NEXT: NumberOfAuxEntries: 1 |
| # DEFAULT64-NEXT: File Auxiliary Entry { |
| # DEFAULT64-NEXT: Index: 7 |
| # DEFAULT64-NEXT: Name: |
| # DEFAULT64-NEXT: Type: XFT_FN (0x0) |
| # DEFAULT64-NEXT: Auxiliary Type: AUX_FILE (0xFC) |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: Symbol { |
| # DEFAULT64-NEXT: Index: 8 |
| # DEFAULT64-NEXT: Name: aux_sect |
| # DEFAULT64-NEXT: Value (OffsetInDWARF): 0x0 |
| # DEFAULT64-NEXT: Section: N_UNDEF |
| # DEFAULT64-NEXT: Type: 0x0 |
| # DEFAULT64-NEXT: StorageClass: C_DWARF (0x70) |
| # DEFAULT64-NEXT: NumberOfAuxEntries: 1 |
| # DEFAULT64-NEXT: Sect Auxiliary Entry For DWARF { |
| # DEFAULT64-NEXT: Index: 9 |
| # DEFAULT64-NEXT: LengthOfSectionPortion: 0x0 |
| # DEFAULT64-NEXT: NumberOfRelocEntries: 0 |
| # DEFAULT64-NEXT: Auxiliary Type: AUX_SECT (0xFA) |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: } |
| # DEFAULT64-NEXT: ] |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1F7 |
| Symbols: |
| - Name: aux_except_fcn_csect |
| StorageClass: C_EXT |
| Type: 0x20 |
| AuxEntries: |
| - Type: AUX_EXCEPT |
| OffsetToExceptionTbl: [[OFFTOEXP=<none>]] |
| SizeOfFunction: [[SIZEOFFUN=<none>]] |
| SymIdxOfNextBeyond: [[SYMIDXOFNEXT=<none>]] |
| - Type: AUX_FCN |
| SizeOfFunction: [[SIZEOFFUN2=<none>]] |
| SymIdxOfNextBeyond: [[SYMIDXOFNEXT2=<none>]] |
| PtrToLineNum: [[PTRTOLINE=<none>]] |
| - Type: AUX_CSECT |
| ParameterHashIndex: [[HASHIDX=<none>]] |
| TypeChkSectNum: [[TYPECHKNUM=<none>]] |
| SymbolAlignmentAndType: [[SYMALIGN=<none>]] |
| StorageMappingClass: [[STORMAPCLASS=<none>]] |
| SectionOrLengthLo: [[SECTLENLO=<none>]] |
| SectionOrLengthHi: [[SECTLENHI=<none>]] |
| - Name: aux_sym |
| StorageClass: C_BLOCK |
| AuxEntries: |
| - Type: AUX_SYM |
| LineNum: [[LINENUM=<none>]] |
| - Name: aux_file |
| StorageClass: C_FILE |
| AuxEntries: |
| - Type: AUX_FILE |
| FileNameOrString: [[FILENAME=<none>]] |
| FileStringType: [[FILETYPE=<none>]] |
| - Name: aux_sect |
| StorageClass: C_DWARF |
| AuxEntries: |
| - Type: AUX_SECT |
| LengthOfSectionPortion: [[LENOFSEC=<none>]] |
| NumberOfRelocEnt: [[NUMOFRELOC=<none>]] |
| |
| ## Case4: check the non-default behaviour in XCOFF64. |
| # RUN: yaml2obj %s --docnum=2 -o %t4 -DOFFTOEXP=2 -DSIZEOFFUN=3 \ |
| # RUN: -DSYMIDXOFNEXT=4 -DSIZEOFFUN2=2 -DSYMIDXOFNEXT2=3 -DPTRTOLINE=4 \ |
| # RUN: -DHASHIDX=2 -DTYPECHKNUM=3 -DSYMALIGN=4 -DSTORMAPCLASS=XMC_RO \ |
| # RUN: -DSECTLENLO=5 -DSECTLENHI=1 -DLINENUM=2 -DFILENAME='fname' \ |
| # RUN: -DFILETYPE=XFT_CD -DLENOFSEC=2 -DNUMOFRELOC=3 |
| # RUN: llvm-readobj --syms %t4 | FileCheck %s --check-prefix=NON-DEFAULT64 |
| |
| # NON-DEFAULT64: Symbols [ |
| # NON-DEFAULT64-NEXT: Symbol { |
| # NON-DEFAULT64-NEXT: Index: 0 |
| # NON-DEFAULT64-NEXT: Name: aux_except_fcn_csect |
| # NON-DEFAULT64-NEXT: Value (RelocatableAddress): 0x0 |
| # NON-DEFAULT64-NEXT: Section: N_UNDEF |
| # NON-DEFAULT64-NEXT: Type: 0x20 |
| # NON-DEFAULT64-NEXT: StorageClass: C_EXT (0x2) |
| # NON-DEFAULT64-NEXT: NumberOfAuxEntries: 3 |
| # NON-DEFAULT64-NEXT: Exception Auxiliary Entry { |
| # NON-DEFAULT64-NEXT: Index: 1 |
| # NON-DEFAULT64-NEXT: OffsetToExceptionTable: 0x2 |
| # NON-DEFAULT64-NEXT: SizeOfFunction: 0x3 |
| # NON-DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 4 |
| # NON-DEFAULT64-NEXT: Auxiliary Type: AUX_EXCEPT (0xFF) |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: Function Auxiliary Entry { |
| # NON-DEFAULT64-NEXT: Index: 2 |
| # NON-DEFAULT64-NEXT: SizeOfFunction: 0x2 |
| # NON-DEFAULT64-NEXT: PointerToLineNum: 0x4 |
| # NON-DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 3 |
| # NON-DEFAULT64-NEXT: Auxiliary Type: AUX_FCN (0xFE) |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: CSECT Auxiliary Entry { |
| # NON-DEFAULT64-NEXT: Index: 3 |
| # NON-DEFAULT64-NEXT: SectionLen: 4294967301 |
| # NON-DEFAULT64-NEXT: ParameterHashIndex: 0x2 |
| # NON-DEFAULT64-NEXT: TypeChkSectNum: 0x3 |
| # NON-DEFAULT64-NEXT: SymbolAlignmentLog2: 0 |
| # NON-DEFAULT64-NEXT: SymbolType: 0x4 |
| # NON-DEFAULT64-NEXT: StorageMappingClass: XMC_RO (0x1) |
| # NON-DEFAULT64-NEXT: Auxiliary Type: AUX_CSECT (0xFB) |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: Symbol { |
| # NON-DEFAULT64-NEXT: Index: 4 |
| # NON-DEFAULT64-NEXT: Name: aux_sym |
| # NON-DEFAULT64-NEXT: Value (RelocatableAddress): 0x0 |
| # NON-DEFAULT64-NEXT: Section: N_UNDEF |
| # NON-DEFAULT64-NEXT: Type: 0x0 |
| # NON-DEFAULT64-NEXT: StorageClass: C_BLOCK (0x64) |
| # NON-DEFAULT64-NEXT: NumberOfAuxEntries: 1 |
| # NON-DEFAULT64-NEXT: Block Auxiliary Entry { |
| # NON-DEFAULT64-NEXT: Index: 5 |
| # NON-DEFAULT64-NEXT: LineNumber: 0x2 |
| # NON-DEFAULT64-NEXT: Auxiliary Type: AUX_SYM (0xFD) |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: Symbol { |
| # NON-DEFAULT64-NEXT: Index: 6 |
| # NON-DEFAULT64-NEXT: Name: aux_file |
| # NON-DEFAULT64-NEXT: Value (SymbolTableIndex): 0x0 |
| # NON-DEFAULT64-NEXT: Section: N_UNDEF |
| # NON-DEFAULT64-NEXT: Source Language ID: TB_C (0x0) |
| # NON-DEFAULT64-NEXT: CPU Version ID: 0x0 |
| # NON-DEFAULT64-NEXT: StorageClass: C_FILE (0x67) |
| # NON-DEFAULT64-NEXT: NumberOfAuxEntries: 1 |
| # NON-DEFAULT64-NEXT: File Auxiliary Entry { |
| # NON-DEFAULT64-NEXT: Index: 7 |
| # NON-DEFAULT64-NEXT: Name: fname |
| # NON-DEFAULT64-NEXT: Type: XFT_CD (0x80) |
| # NON-DEFAULT64-NEXT: Auxiliary Type: AUX_FILE (0xFC) |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: Symbol { |
| # NON-DEFAULT64-NEXT: Index: 8 |
| # NON-DEFAULT64-NEXT: Name: aux_sect |
| # NON-DEFAULT64-NEXT: Value (OffsetInDWARF): 0x0 |
| # NON-DEFAULT64-NEXT: Section: N_UNDEF |
| # NON-DEFAULT64-NEXT: Type: 0x0 |
| # NON-DEFAULT64-NEXT: StorageClass: C_DWARF (0x70) |
| # NON-DEFAULT64-NEXT: NumberOfAuxEntries: 1 |
| # NON-DEFAULT64-NEXT: Sect Auxiliary Entry For DWARF { |
| # NON-DEFAULT64-NEXT: Index: 9 |
| # NON-DEFAULT64-NEXT: LengthOfSectionPortion: 0x2 |
| # NON-DEFAULT64-NEXT: NumberOfRelocEntries: 3 |
| # NON-DEFAULT64-NEXT: Auxiliary Type: AUX_SECT (0xFA) |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: } |
| # NON-DEFAULT64-NEXT: ] |
| |
| ## Case5: a file name longer than 8 bytes in the AUX_FILE symbol |
| ## is stored in the string table. |
| # RUN: yaml2obj %s --docnum=3 -o %t5 |
| # RUN: llvm-readobj --syms --string-table %t5 | FileCheck %s \ |
| # RUN: --check-prefix=FILENAME |
| |
| # FILENAME: Symbols [ |
| # FILENAME-NEXT: Symbol { |
| # FILENAME-NEXT: Index: 0 |
| # FILENAME-NEXT: Name: aux_file |
| # FILENAME-NEXT: Value (SymbolTableIndex): 0x0 |
| # FILENAME-NEXT: Section: N_UNDEF |
| # FILENAME-NEXT: Source Language ID: TB_C (0x0) |
| # FILENAME-NEXT: CPU Version ID: 0x0 |
| # FILENAME-NEXT: StorageClass: C_FILE (0x67) |
| # FILENAME-NEXT: NumberOfAuxEntries: 1 |
| # FILENAME-NEXT: File Auxiliary Entry { |
| # FILENAME-NEXT: Index: 1 |
| # FILENAME-NEXT: Name: fileNameInStringTable |
| # FILENAME-NEXT: Type: XFT_CD (0x80) |
| # FILENAME-NEXT: } |
| # FILENAME-NEXT: } |
| # FILENAME-NEXT: ] |
| # FILENAME-NEXT: StringTable { |
| # FILENAME-NEXT: Length: 26 |
| # FILENAME-NEXT: [ 4] fileNameInStringTable |
| # FILENAME-NEXT: } |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Symbols: |
| - Name: aux_file |
| StorageClass: C_FILE |
| NumberOfAuxEntries: 1 |
| AuxEntries: |
| - Type: AUX_FILE |
| FileNameOrString: fileNameInStringTable |
| FileStringType: XFT_CD |
| |
| ## Case6: show that yaml2obj reports an error when trying to write |
| ## the AUX_STAT symbol for XCOFF64. |
| # RUN: not yaml2obj %s --docnum=4 -o %t6 2>&1 | FileCheck %s \ |
| # RUN: --check-prefix=STAT64 |
| |
| # STAT64: error: an auxiliary symbol of type AUX_STAT cannot be defined in XCOFF64 |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1F7 |
| Symbols: |
| - StorageClass: C_STAT |
| NumberOfAuxEntries: 1 |
| AuxEntries: |
| - Type: AUX_STAT |
| |
| ## Case7: show that yaml2obj reports an error when trying to write |
| ## the AUX_EXCEPT symbol for XCOFF32. |
| # RUN: not yaml2obj %s --docnum=5 -o %t7 2>&1 | FileCheck %s \ |
| # RUN: --check-prefix=EXCEPT32 |
| |
| # EXCEPT32: error: an auxiliary symbol of type AUX_EXCEPT cannot be defined in XCOFF32 |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Symbols: |
| - StorageClass: C_EXT |
| NumberOfAuxEntries: 1 |
| AuxEntries: |
| - Type: AUX_EXCEPT |
| |
| ## Case8: show that yaml2obj reports an error when the specified value |
| ## of NumberOfAuxEntries is less than the actual number. |
| # RUN: not yaml2obj %s --docnum=6 -o %t8 2>&1 | FileCheck %s \ |
| # RUN: --check-prefix=AUXCOUNT |
| |
| # AUXCOUNT: error: specified NumberOfAuxEntries 1 is less than the actual number of auxiliary entries 2 |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Symbols: |
| - StorageClass: C_EXT |
| NumberOfAuxEntries: 1 |
| AuxEntries: |
| - Type: AUX_FCN |
| - Type: AUX_CSECT |
| |
| ## Case9: pad with zeros when the specified value of NumberOfAuxEntries |
| ## is greater than the actual number. |
| # RUN: yaml2obj %s --docnum=7 -o %t9 |
| # RUN: llvm-readobj --syms %t9 | FileCheck %s --check-prefix=AUXNUM |
| |
| # AUXNUM: Symbols [ |
| # AUXNUM-NEXT: Symbol { |
| # AUXNUM-NEXT: Index: 0 |
| # AUXNUM-NEXT: Name: |
| # AUXNUM-NEXT: Value (SymbolTableIndex): 0x0 |
| # AUXNUM-NEXT: Section: N_UNDEF |
| # AUXNUM-NEXT: Source Language ID: TB_C (0x0) |
| # AUXNUM-NEXT: CPU Version ID: 0x0 |
| # AUXNUM-NEXT: StorageClass: C_FILE (0x67) |
| # AUXNUM-NEXT: NumberOfAuxEntries: 2 |
| # AUXNUM-NEXT: File Auxiliary Entry { |
| # AUXNUM-NEXT: Index: 1 |
| # AUXNUM-NEXT: Name: foo |
| # AUXNUM-NEXT: Type: XFT_FN (0x0) |
| # AUXNUM-NEXT: } |
| # AUXNUM-NEXT: File Auxiliary Entry { |
| # AUXNUM-NEXT: Index: 2 |
| # AUXNUM-NEXT: Name: |
| # AUXNUM-NEXT: Type: XFT_FN (0x0) |
| # AUXNUM-NEXT: } |
| # AUXNUM-NEXT: } |
| # AUXNUM-NEXT: ] |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: 0x1DF |
| Symbols: |
| - StorageClass: C_FILE |
| NumberOfAuxEntries: 2 |
| AuxEntries: |
| - Type: AUX_FILE |
| FileNameOrString: foo |