581 lines
22 KiB
YAML
581 lines
22 KiB
YAML
## 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
|