## 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=]] SizeOfFunction: [[SIZEOFFUN=]] SymIdxOfNextBeyond: [[SYMIDXOFNEXT=]] PtrToLineNum: [[PTRTOLINE=]] - Type: AUX_CSECT ParameterHashIndex: [[HASHIDX=]] TypeChkSectNum: [[TYPECHKNUM=]] SymbolAlignmentAndType: [[SYMALIGN=]] StorageMappingClass: [[STORMAPCLASS=]] SectionOrLength: [[SECTORLEN=]] StabInfoIndex: [[STABIDX=]] StabSectNum: [[STABNUM=]] - Name: aux_stat StorageClass: C_STAT AuxEntries: - Type: AUX_STAT SectionLength: [[SECTLEN=]] NumberOfRelocEnt: [[NUMOFREL=]] NumberOfLineNum: [[NUMOFLINE=]] - Name: aux_sym StorageClass: C_BLOCK AuxEntries: - Type: AUX_SYM LineNumHi: [[LINEHI=]] LineNumLo: [[LINELO=]] - Name: aux_file StorageClass: C_FILE AuxEntries: - Type: AUX_FILE FileNameOrString: [[FILENAME=]] FileStringType: [[FILETYPE=]] - Name: aux_sect StorageClass: C_DWARF AuxEntries: - Type: AUX_SECT LengthOfSectionPortion: [[LENOFSEC=]] NumberOfRelocEnt: [[NUMOFRELOC=]] ## 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=]] SizeOfFunction: [[SIZEOFFUN=]] SymIdxOfNextBeyond: [[SYMIDXOFNEXT=]] - Type: AUX_FCN SizeOfFunction: [[SIZEOFFUN2=]] SymIdxOfNextBeyond: [[SYMIDXOFNEXT2=]] PtrToLineNum: [[PTRTOLINE=]] - Type: AUX_CSECT ParameterHashIndex: [[HASHIDX=]] TypeChkSectNum: [[TYPECHKNUM=]] SymbolAlignmentAndType: [[SYMALIGN=]] StorageMappingClass: [[STORMAPCLASS=]] SectionOrLengthLo: [[SECTLENLO=]] SectionOrLengthHi: [[SECTLENHI=]] - Name: aux_sym StorageClass: C_BLOCK AuxEntries: - Type: AUX_SYM LineNum: [[LINENUM=]] - Name: aux_file StorageClass: C_FILE AuxEntries: - Type: AUX_FILE FileNameOrString: [[FILENAME=]] FileStringType: [[FILETYPE=]] - Name: aux_sect StorageClass: C_DWARF AuxEntries: - Type: AUX_SECT LengthOfSectionPortion: [[LENOFSEC=]] NumberOfRelocEnt: [[NUMOFRELOC=]] ## 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