[llvm] 05fffac - [NFC][XCOFF] commit tests for D113552.
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 19 01:07:46 PST 2022
Author: esmeyi
Date: 2022-01-19T04:06:37-05:00
New Revision: 05fffac1f9ad98505ec111bb4aa47ff84771ecf3
URL: https://github.com/llvm/llvm-project/commit/05fffac1f9ad98505ec111bb4aa47ff84771ecf3
DIFF: https://github.com/llvm/llvm-project/commit/05fffac1f9ad98505ec111bb4aa47ff84771ecf3.diff
LOG: [NFC][XCOFF] commit tests for D113552.
The code part of D113552 was committed at
817936408bad, where the test was left because
it depended on another patch.
There are no dependencies now.
Added:
llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml
Modified:
Removed:
################################################################################
diff --git a/llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml b/llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml
new file mode 100644
index 0000000000000..439691695642d
--- /dev/null
+++ b/llvm/test/tools/yaml2obj/XCOFF/aux-symbols.yaml
@@ -0,0 +1,581 @@
+## 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: yaml2obj: 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
More information about the llvm-commits
mailing list