607 lines · yaml
1## Check that we are able to dump auxiliary symbols.2## 1. We can use default values for the fields of auxiliary symbols.3## 2. We can explicitly specify all fields for auxiliary symbols.4 5## Case1: check the default behaviour in XCOFF32.6# RUN: yaml2obj %s --docnum=1 -o %t17# RUN: llvm-readobj --syms %t1 | FileCheck %s --check-prefix=DEFAULT328 9# DEFAULT32: Symbols [10# DEFAULT32-NEXT: Symbol {11# DEFAULT32-NEXT: Index: 012# DEFAULT32-NEXT: Name: aux_fcn_csect13# DEFAULT32-NEXT: Value (RelocatableAddress): 0x014# DEFAULT32-NEXT: Section: N_UNDEF15# DEFAULT32-NEXT: Type: 0x2016# DEFAULT32-NEXT: StorageClass: C_EXT (0x2)17# DEFAULT32-NEXT: NumberOfAuxEntries: 218# DEFAULT32-NEXT: Function Auxiliary Entry {19# DEFAULT32-NEXT: Index: 120# DEFAULT32-NEXT: OffsetToExceptionTable: 0x021# DEFAULT32-NEXT: SizeOfFunction: 0x022# DEFAULT32-NEXT: PointerToLineNum: 0x023# DEFAULT32-NEXT: SymbolIndexOfNextBeyond: 024# DEFAULT32-NEXT: }25# DEFAULT32-NEXT: CSECT Auxiliary Entry {26# DEFAULT32-NEXT: Index: 227# DEFAULT32-NEXT: SectionLen: 028# DEFAULT32-NEXT: ParameterHashIndex: 0x029# DEFAULT32-NEXT: TypeChkSectNum: 0x030# DEFAULT32-NEXT: SymbolAlignmentLog2: 031# DEFAULT32-NEXT: SymbolType: XTY_ER (0x0)32# DEFAULT32-NEXT: StorageMappingClass: XMC_PR (0x0)33# DEFAULT32-NEXT: StabInfoIndex: 0x034# DEFAULT32-NEXT: StabSectNum: 0x035# DEFAULT32-NEXT: }36# DEFAULT32-NEXT: }37# DEFAULT32-NEXT: Symbol {38# DEFAULT32-NEXT: Index: 339# DEFAULT32-NEXT: Name: aux_stat40# DEFAULT32-NEXT: Value (RelocatableAddress): 0x041# DEFAULT32-NEXT: Section: N_UNDEF42# DEFAULT32-NEXT: Type: 0x043# DEFAULT32-NEXT: StorageClass: C_STAT (0x3)44# DEFAULT32-NEXT: NumberOfAuxEntries: 145# DEFAULT32-NEXT: Sect Auxiliary Entry For Stat {46# DEFAULT32-NEXT: Index: 447# DEFAULT32-NEXT: SectionLength: 048# DEFAULT32-NEXT: NumberOfRelocEnt: 049# DEFAULT32-NEXT: NumberOfLineNum: 050# DEFAULT32-NEXT: }51# DEFAULT32-NEXT: }52# DEFAULT32-NEXT: Symbol {53# DEFAULT32-NEXT: Index: 554# DEFAULT32-NEXT: Name: aux_sym55# DEFAULT32-NEXT: Value (RelocatableAddress): 0x056# DEFAULT32-NEXT: Section: N_UNDEF57# DEFAULT32-NEXT: Type: 0x058# DEFAULT32-NEXT: StorageClass: C_BLOCK (0x64)59# DEFAULT32-NEXT: NumberOfAuxEntries: 160# DEFAULT32-NEXT: Block Auxiliary Entry {61# DEFAULT32-NEXT: Index: 662# DEFAULT32-NEXT: LineNumber (High 2 Bytes): 0x063# DEFAULT32-NEXT: LineNumber (Low 2 Bytes): 0x064# DEFAULT32-NEXT: }65# DEFAULT32-NEXT: }66# DEFAULT32-NEXT: Symbol {67# DEFAULT32-NEXT: Index: 768# DEFAULT32-NEXT: Name: aux_file69# DEFAULT32-NEXT: Value (SymbolTableIndex): 0x070# DEFAULT32-NEXT: Section: N_UNDEF71# DEFAULT32-NEXT: Source Language ID: TB_C (0x0)72# DEFAULT32-NEXT: CPU Version ID: TCPU_INVALID (0x0)73# DEFAULT32-NEXT: StorageClass: C_FILE (0x67)74# DEFAULT32-NEXT: NumberOfAuxEntries: 175# DEFAULT32-NEXT: File Auxiliary Entry {76# DEFAULT32-NEXT: Index: 877# DEFAULT32-NEXT: Name: 78# DEFAULT32-NEXT: Type: XFT_FN (0x0)79# DEFAULT32-NEXT: }80# DEFAULT32-NEXT: }81# DEFAULT32-NEXT: Symbol {82# DEFAULT32-NEXT: Index: 983# DEFAULT32-NEXT: Name: aux_sect84# DEFAULT32-NEXT: Value (OffsetInDWARF): 0x085# DEFAULT32-NEXT: Section: N_UNDEF86# DEFAULT32-NEXT: Type: 0x087# DEFAULT32-NEXT: StorageClass: C_DWARF (0x70)88# DEFAULT32-NEXT: NumberOfAuxEntries: 189# DEFAULT32-NEXT: Sect Auxiliary Entry For DWARF {90# DEFAULT32-NEXT: Index: 1091# DEFAULT32-NEXT: LengthOfSectionPortion: 0x092# DEFAULT32-NEXT: NumberOfRelocEntries: 093# DEFAULT32-NEXT: }94# DEFAULT32-NEXT: }95# DEFAULT32-NEXT: ]96 97--- !XCOFF98FileHeader:99 MagicNumber: 0x1DF100Symbols:101 - Name: aux_fcn_csect102 StorageClass: C_EXT103 Type: 0x20104 AuxEntries:105 - Type: AUX_FCN106 OffsetToExceptionTbl: [[OFFTOEXP=<none>]]107 SizeOfFunction: [[SIZEOFFUN=<none>]]108 SymIdxOfNextBeyond: [[SYMIDXOFNEXT=<none>]]109 PtrToLineNum: [[PTRTOLINE=<none>]]110 - Type: AUX_CSECT111 ParameterHashIndex: [[HASHIDX=<none>]]112 TypeChkSectNum: [[TYPECHKNUM=<none>]]113 SymbolAlignmentAndType: [[SYMALIGN=<none>]]114 StorageMappingClass: [[STORMAPCLASS=<none>]]115 SectionOrLength: [[SECTORLEN=<none>]]116 StabInfoIndex: [[STABIDX=<none>]]117 StabSectNum: [[STABNUM=<none>]]118 - Name: aux_stat119 StorageClass: C_STAT120 AuxEntries:121 - Type: AUX_STAT122 SectionLength: [[SECTLEN=<none>]]123 NumberOfRelocEnt: [[NUMOFREL=<none>]]124 NumberOfLineNum: [[NUMOFLINE=<none>]]125 - Name: aux_sym126 StorageClass: C_BLOCK127 AuxEntries:128 - Type: AUX_SYM129 LineNumHi: [[LINEHI=<none>]]130 LineNumLo: [[LINELO=<none>]]131 - Name: aux_file132 StorageClass: C_FILE133 AuxEntries:134 - Type: AUX_FILE135 FileNameOrString: [[FILENAME=<none>]]136 FileStringType: [[FILETYPE=<none>]]137 - Name: aux_sect138 StorageClass: C_DWARF139 AuxEntries:140 - Type: AUX_SECT141 LengthOfSectionPortion: [[LENOFSEC=<none>]]142 NumberOfRelocEnt: [[NUMOFRELOC=<none>]]143 144## Case2: check the non-default behaviour in XCOFF32.145# RUN: yaml2obj %s --docnum=1 -o %t2 -DOFFTOEXP=2 -DSIZEOFFUN=3 \146# RUN: -DSYMIDXOFNEXT=4 -DPTRTOLINE=5 -DHASHIDX=2 -DTYPECHKNUM=3 \147# RUN: -DSYMALIGN=4 -DSTORMAPCLASS=XMC_RO -DSECTORLEN=6 -DSTABIDX=7 \148# RUN: -DSTABNUM=8 -DSECTLEN=2 -DNUMOFREL=3 -DNUMOFLINE=4 \149# RUN: -DLINEHI=2 -DLINELO=3 -DFILENAME='fname' -DFILETYPE=XFT_CD \150# RUN: -DLENOFSEC=2 -DNUMOFRELOC=3151# RUN: llvm-readobj --syms %t2 | FileCheck %s --check-prefix=NON-DEFAULT32152 153# NON-DEFAULT32: Symbols [154# NON-DEFAULT32-NEXT: Symbol {155# NON-DEFAULT32-NEXT: Index: 0156# NON-DEFAULT32-NEXT: Name: aux_fcn_csect157# NON-DEFAULT32-NEXT: Value (RelocatableAddress): 0x0158# NON-DEFAULT32-NEXT: Section: N_UNDEF159# NON-DEFAULT32-NEXT: Type: 0x20160# NON-DEFAULT32-NEXT: StorageClass: C_EXT (0x2)161# NON-DEFAULT32-NEXT: NumberOfAuxEntries: 2162# NON-DEFAULT32-NEXT: Function Auxiliary Entry {163# NON-DEFAULT32-NEXT: Index: 1164# NON-DEFAULT32-NEXT: OffsetToExceptionTable: 0x2165# NON-DEFAULT32-NEXT: SizeOfFunction: 0x3166# NON-DEFAULT32-NEXT: PointerToLineNum: 0x5167# NON-DEFAULT32-NEXT: SymbolIndexOfNextBeyond: 4168# NON-DEFAULT32-NEXT: }169# NON-DEFAULT32-NEXT: CSECT Auxiliary Entry {170# NON-DEFAULT32-NEXT: Index: 2171# NON-DEFAULT32-NEXT: SectionLen: 6172# NON-DEFAULT32-NEXT: ParameterHashIndex: 0x2173# NON-DEFAULT32-NEXT: TypeChkSectNum: 0x3174# NON-DEFAULT32-NEXT: SymbolAlignmentLog2: 0175# NON-DEFAULT32-NEXT: SymbolType: 0x4176# NON-DEFAULT32-NEXT: StorageMappingClass: XMC_RO (0x1)177# NON-DEFAULT32-NEXT: StabInfoIndex: 0x7178# NON-DEFAULT32-NEXT: StabSectNum: 0x8179# NON-DEFAULT32-NEXT: }180# NON-DEFAULT32-NEXT: }181# NON-DEFAULT32-NEXT: Symbol {182# NON-DEFAULT32-NEXT: Index: 3183# NON-DEFAULT32-NEXT: Name: aux_stat184# NON-DEFAULT32-NEXT: Value (RelocatableAddress): 0x0185# NON-DEFAULT32-NEXT: Section: N_UNDEF186# NON-DEFAULT32-NEXT: Type: 0x0187# NON-DEFAULT32-NEXT: StorageClass: C_STAT (0x3)188# NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1189# NON-DEFAULT32-NEXT: Sect Auxiliary Entry For Stat {190# NON-DEFAULT32-NEXT: Index: 4191# NON-DEFAULT32-NEXT: SectionLength: 2192# NON-DEFAULT32-NEXT: NumberOfRelocEnt: 3193# NON-DEFAULT32-NEXT: NumberOfLineNum: 4194# NON-DEFAULT32-NEXT: }195# NON-DEFAULT32-NEXT: }196# NON-DEFAULT32-NEXT: Symbol {197# NON-DEFAULT32-NEXT: Index: 5198# NON-DEFAULT32-NEXT: Name: aux_sym199# NON-DEFAULT32-NEXT: Value (RelocatableAddress): 0x0200# NON-DEFAULT32-NEXT: Section: N_UNDEF201# NON-DEFAULT32-NEXT: Type: 0x0202# NON-DEFAULT32-NEXT: StorageClass: C_BLOCK (0x64)203# NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1204# NON-DEFAULT32-NEXT: Block Auxiliary Entry {205# NON-DEFAULT32-NEXT: Index: 6206# NON-DEFAULT32-NEXT: LineNumber (High 2 Bytes): 0x2207# NON-DEFAULT32-NEXT: LineNumber (Low 2 Bytes): 0x3208# NON-DEFAULT32-NEXT: }209# NON-DEFAULT32-NEXT: }210# NON-DEFAULT32-NEXT: Symbol {211# NON-DEFAULT32-NEXT: Index: 7212# NON-DEFAULT32-NEXT: Name: aux_file213# NON-DEFAULT32-NEXT: Value (SymbolTableIndex): 0x0214# NON-DEFAULT32-NEXT: Section: N_UNDEF215# NON-DEFAULT32-NEXT: Source Language ID: TB_C (0x0)216# NON-DEFAULT32-NEXT: CPU Version ID: TCPU_INVALID (0x0)217# NON-DEFAULT32-NEXT: StorageClass: C_FILE (0x67)218# NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1219# NON-DEFAULT32-NEXT: File Auxiliary Entry {220# NON-DEFAULT32-NEXT: Index: 8221# NON-DEFAULT32-NEXT: Name: fname222# NON-DEFAULT32-NEXT: Type: XFT_CD (0x80)223# NON-DEFAULT32-NEXT: }224# NON-DEFAULT32-NEXT: }225# NON-DEFAULT32-NEXT: Symbol {226# NON-DEFAULT32-NEXT: Index: 9227# NON-DEFAULT32-NEXT: Name: aux_sect228# NON-DEFAULT32-NEXT: Value (OffsetInDWARF): 0x0229# NON-DEFAULT32-NEXT: Section: N_UNDEF230# NON-DEFAULT32-NEXT: Type: 0x0231# NON-DEFAULT32-NEXT: StorageClass: C_DWARF (0x70)232# NON-DEFAULT32-NEXT: NumberOfAuxEntries: 1233# NON-DEFAULT32-NEXT: Sect Auxiliary Entry For DWARF {234# NON-DEFAULT32-NEXT: Index: 10235# NON-DEFAULT32-NEXT: LengthOfSectionPortion: 0x2236# NON-DEFAULT32-NEXT: NumberOfRelocEntries: 3237# NON-DEFAULT32-NEXT: }238# NON-DEFAULT32-NEXT: }239# NON-DEFAULT32-NEXT: ]240 241## Case3: check the default behaviour in XCOFF64.242# RUN: yaml2obj %s --docnum=2 -o %t3243# RUN: llvm-readobj --syms %t3 | FileCheck %s --check-prefix=DEFAULT64244 245# DEFAULT64: Symbols [246# DEFAULT64-NEXT: Symbol {247# DEFAULT64-NEXT: Index: 0248# DEFAULT64-NEXT: Name: aux_except_fcn_csect249# DEFAULT64-NEXT: Value (RelocatableAddress): 0x0250# DEFAULT64-NEXT: Section: N_UNDEF251# DEFAULT64-NEXT: Type: 0x20252# DEFAULT64-NEXT: StorageClass: C_EXT (0x2)253# DEFAULT64-NEXT: NumberOfAuxEntries: 3254# DEFAULT64-NEXT: Exception Auxiliary Entry {255# DEFAULT64-NEXT: Index: 1256# DEFAULT64-NEXT: OffsetToExceptionTable: 0x0257# DEFAULT64-NEXT: SizeOfFunction: 0x0258# DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 0259# DEFAULT64-NEXT: Auxiliary Type: AUX_EXCEPT (0xFF)260# DEFAULT64-NEXT: }261# DEFAULT64-NEXT: Function Auxiliary Entry {262# DEFAULT64-NEXT: Index: 2263# DEFAULT64-NEXT: SizeOfFunction: 0x0264# DEFAULT64-NEXT: PointerToLineNum: 0x0265# DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 0266# DEFAULT64-NEXT: Auxiliary Type: AUX_FCN (0xFE)267# DEFAULT64-NEXT: }268# DEFAULT64-NEXT: CSECT Auxiliary Entry {269# DEFAULT64-NEXT: Index: 3270# DEFAULT64-NEXT: SectionLen: 0271# DEFAULT64-NEXT: ParameterHashIndex: 0x0272# DEFAULT64-NEXT: TypeChkSectNum: 0x0273# DEFAULT64-NEXT: SymbolAlignmentLog2: 0274# DEFAULT64-NEXT: SymbolType: XTY_ER (0x0)275# DEFAULT64-NEXT: StorageMappingClass: XMC_PR (0x0)276# DEFAULT64-NEXT: Auxiliary Type: AUX_CSECT (0xFB)277# DEFAULT64-NEXT: }278# DEFAULT64-NEXT: }279# DEFAULT64-NEXT: Symbol {280# DEFAULT64-NEXT: Index: 4281# DEFAULT64-NEXT: Name: aux_sym282# DEFAULT64-NEXT: Value (RelocatableAddress): 0x0283# DEFAULT64-NEXT: Section: N_UNDEF284# DEFAULT64-NEXT: Type: 0x0285# DEFAULT64-NEXT: StorageClass: C_BLOCK (0x64)286# DEFAULT64-NEXT: NumberOfAuxEntries: 1287# DEFAULT64-NEXT: Block Auxiliary Entry {288# DEFAULT64-NEXT: Index: 5289# DEFAULT64-NEXT: LineNumber: 0x0290# DEFAULT64-NEXT: Auxiliary Type: AUX_SYM (0xFD)291# DEFAULT64-NEXT: }292# DEFAULT64-NEXT: }293# DEFAULT64-NEXT: Symbol {294# DEFAULT64-NEXT: Index: 6295# DEFAULT64-NEXT: Name: aux_file296# DEFAULT64-NEXT: Value (SymbolTableIndex): 0x0297# DEFAULT64-NEXT: Section: N_UNDEF298# DEFAULT64-NEXT: Source Language ID: TB_C (0x0)299# DEFAULT64-NEXT: CPU Version ID: TCPU_INVALID (0x0)300# DEFAULT64-NEXT: StorageClass: C_FILE (0x67)301# DEFAULT64-NEXT: NumberOfAuxEntries: 1302# DEFAULT64-NEXT: File Auxiliary Entry {303# DEFAULT64-NEXT: Index: 7304# DEFAULT64-NEXT: Name: 305# DEFAULT64-NEXT: Type: XFT_FN (0x0)306# DEFAULT64-NEXT: Auxiliary Type: AUX_FILE (0xFC)307# DEFAULT64-NEXT: }308# DEFAULT64-NEXT: }309# DEFAULT64-NEXT: Symbol {310# DEFAULT64-NEXT: Index: 8311# DEFAULT64-NEXT: Name: aux_sect312# DEFAULT64-NEXT: Value (OffsetInDWARF): 0x0313# DEFAULT64-NEXT: Section: N_UNDEF314# DEFAULT64-NEXT: Type: 0x0315# DEFAULT64-NEXT: StorageClass: C_DWARF (0x70)316# DEFAULT64-NEXT: NumberOfAuxEntries: 1317# DEFAULT64-NEXT: Sect Auxiliary Entry For DWARF {318# DEFAULT64-NEXT: Index: 9319# DEFAULT64-NEXT: LengthOfSectionPortion: 0x0320# DEFAULT64-NEXT: NumberOfRelocEntries: 0321# DEFAULT64-NEXT: Auxiliary Type: AUX_SECT (0xFA)322# DEFAULT64-NEXT: }323# DEFAULT64-NEXT: }324# DEFAULT64-NEXT: ]325 326--- !XCOFF327FileHeader:328 MagicNumber: 0x1F7329Symbols:330 - Name: aux_except_fcn_csect331 StorageClass: C_EXT332 Type: 0x20333 AuxEntries:334 - Type: AUX_EXCEPT335 OffsetToExceptionTbl: [[OFFTOEXP=<none>]]336 SizeOfFunction: [[SIZEOFFUN=<none>]]337 SymIdxOfNextBeyond: [[SYMIDXOFNEXT=<none>]]338 - Type: AUX_FCN339 SizeOfFunction: [[SIZEOFFUN2=<none>]]340 SymIdxOfNextBeyond: [[SYMIDXOFNEXT2=<none>]]341 PtrToLineNum: [[PTRTOLINE=<none>]]342 - Type: AUX_CSECT343 ParameterHashIndex: [[HASHIDX=<none>]]344 TypeChkSectNum: [[TYPECHKNUM=<none>]]345 SymbolAlignmentAndType: [[SYMALIGN=<none>]]346 StorageMappingClass: [[STORMAPCLASS=<none>]]347 SectionOrLengthLo: [[SECTLENLO=<none>]]348 SectionOrLengthHi: [[SECTLENHI=<none>]]349 - Name: aux_sym350 StorageClass: C_BLOCK351 AuxEntries:352 - Type: AUX_SYM353 LineNum: [[LINENUM=<none>]]354 - Name: aux_file355 StorageClass: C_FILE356 AuxEntries:357 - Type: AUX_FILE358 FileNameOrString: [[FILENAME=<none>]]359 FileStringType: [[FILETYPE=<none>]]360 - Name: aux_sect361 StorageClass: C_DWARF362 AuxEntries:363 - Type: AUX_SECT364 LengthOfSectionPortion: [[LENOFSEC=<none>]]365 NumberOfRelocEnt: [[NUMOFRELOC=<none>]]366 367## Case4: check the non-default behaviour in XCOFF64.368# RUN: yaml2obj %s --docnum=2 -o %t4 -DOFFTOEXP=2 -DSIZEOFFUN=3 \369# RUN: -DSYMIDXOFNEXT=4 -DSIZEOFFUN2=2 -DSYMIDXOFNEXT2=3 -DPTRTOLINE=4 \370# RUN: -DHASHIDX=2 -DTYPECHKNUM=3 -DSYMALIGN=4 -DSTORMAPCLASS=XMC_RO \371# RUN: -DSECTLENLO=5 -DSECTLENHI=1 -DLINENUM=2 -DFILENAME='fname' \372# RUN: -DFILETYPE=XFT_CD -DLENOFSEC=2 -DNUMOFRELOC=3373# RUN: llvm-readobj --syms %t4 | FileCheck %s --check-prefix=NON-DEFAULT64374 375# NON-DEFAULT64: Symbols [376# NON-DEFAULT64-NEXT: Symbol {377# NON-DEFAULT64-NEXT: Index: 0378# NON-DEFAULT64-NEXT: Name: aux_except_fcn_csect379# NON-DEFAULT64-NEXT: Value (RelocatableAddress): 0x0380# NON-DEFAULT64-NEXT: Section: N_UNDEF381# NON-DEFAULT64-NEXT: Type: 0x20382# NON-DEFAULT64-NEXT: StorageClass: C_EXT (0x2)383# NON-DEFAULT64-NEXT: NumberOfAuxEntries: 3384# NON-DEFAULT64-NEXT: Exception Auxiliary Entry {385# NON-DEFAULT64-NEXT: Index: 1386# NON-DEFAULT64-NEXT: OffsetToExceptionTable: 0x2387# NON-DEFAULT64-NEXT: SizeOfFunction: 0x3388# NON-DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 4389# NON-DEFAULT64-NEXT: Auxiliary Type: AUX_EXCEPT (0xFF)390# NON-DEFAULT64-NEXT: }391# NON-DEFAULT64-NEXT: Function Auxiliary Entry {392# NON-DEFAULT64-NEXT: Index: 2393# NON-DEFAULT64-NEXT: SizeOfFunction: 0x2394# NON-DEFAULT64-NEXT: PointerToLineNum: 0x4395# NON-DEFAULT64-NEXT: SymbolIndexOfNextBeyond: 3396# NON-DEFAULT64-NEXT: Auxiliary Type: AUX_FCN (0xFE)397# NON-DEFAULT64-NEXT: }398# NON-DEFAULT64-NEXT: CSECT Auxiliary Entry {399# NON-DEFAULT64-NEXT: Index: 3400# NON-DEFAULT64-NEXT: SectionLen: 4294967301401# NON-DEFAULT64-NEXT: ParameterHashIndex: 0x2402# NON-DEFAULT64-NEXT: TypeChkSectNum: 0x3403# NON-DEFAULT64-NEXT: SymbolAlignmentLog2: 0404# NON-DEFAULT64-NEXT: SymbolType: 0x4405# NON-DEFAULT64-NEXT: StorageMappingClass: XMC_RO (0x1)406# NON-DEFAULT64-NEXT: Auxiliary Type: AUX_CSECT (0xFB)407# NON-DEFAULT64-NEXT: }408# NON-DEFAULT64-NEXT: }409# NON-DEFAULT64-NEXT: Symbol {410# NON-DEFAULT64-NEXT: Index: 4411# NON-DEFAULT64-NEXT: Name: aux_sym412# NON-DEFAULT64-NEXT: Value (RelocatableAddress): 0x0413# NON-DEFAULT64-NEXT: Section: N_UNDEF414# NON-DEFAULT64-NEXT: Type: 0x0415# NON-DEFAULT64-NEXT: StorageClass: C_BLOCK (0x64)416# NON-DEFAULT64-NEXT: NumberOfAuxEntries: 1417# NON-DEFAULT64-NEXT: Block Auxiliary Entry {418# NON-DEFAULT64-NEXT: Index: 5419# NON-DEFAULT64-NEXT: LineNumber: 0x2420# NON-DEFAULT64-NEXT: Auxiliary Type: AUX_SYM (0xFD)421# NON-DEFAULT64-NEXT: }422# NON-DEFAULT64-NEXT: }423# NON-DEFAULT64-NEXT: Symbol {424# NON-DEFAULT64-NEXT: Index: 6425# NON-DEFAULT64-NEXT: Name: aux_file426# NON-DEFAULT64-NEXT: Value (SymbolTableIndex): 0x0427# NON-DEFAULT64-NEXT: Section: N_UNDEF428# NON-DEFAULT64-NEXT: Source Language ID: TB_C (0x0)429# NON-DEFAULT64-NEXT: CPU Version ID: TCPU_INVALID (0x0)430# NON-DEFAULT64-NEXT: StorageClass: C_FILE (0x67)431# NON-DEFAULT64-NEXT: NumberOfAuxEntries: 1432# NON-DEFAULT64-NEXT: File Auxiliary Entry {433# NON-DEFAULT64-NEXT: Index: 7434# NON-DEFAULT64-NEXT: Name: fname435# NON-DEFAULT64-NEXT: Type: XFT_CD (0x80)436# NON-DEFAULT64-NEXT: Auxiliary Type: AUX_FILE (0xFC)437# NON-DEFAULT64-NEXT: }438# NON-DEFAULT64-NEXT: }439# NON-DEFAULT64-NEXT: Symbol {440# NON-DEFAULT64-NEXT: Index: 8441# NON-DEFAULT64-NEXT: Name: aux_sect442# NON-DEFAULT64-NEXT: Value (OffsetInDWARF): 0x0443# NON-DEFAULT64-NEXT: Section: N_UNDEF444# NON-DEFAULT64-NEXT: Type: 0x0445# NON-DEFAULT64-NEXT: StorageClass: C_DWARF (0x70)446# NON-DEFAULT64-NEXT: NumberOfAuxEntries: 1447# NON-DEFAULT64-NEXT: Sect Auxiliary Entry For DWARF {448# NON-DEFAULT64-NEXT: Index: 9449# NON-DEFAULT64-NEXT: LengthOfSectionPortion: 0x2450# NON-DEFAULT64-NEXT: NumberOfRelocEntries: 3451# NON-DEFAULT64-NEXT: Auxiliary Type: AUX_SECT (0xFA)452# NON-DEFAULT64-NEXT: }453# NON-DEFAULT64-NEXT: }454# NON-DEFAULT64-NEXT: ]455 456## Case5: a file name longer than 8 bytes in the AUX_FILE symbol457## is stored in the string table.458# RUN: yaml2obj %s --docnum=3 -o %t5459# RUN: llvm-readobj --syms --string-table %t5 | FileCheck %s \460# RUN: --check-prefix=FILENAME461 462# FILENAME: Symbols [463# FILENAME-NEXT: Symbol {464# FILENAME-NEXT: Index: 0465# FILENAME-NEXT: Name: aux_file466# FILENAME-NEXT: Value (SymbolTableIndex): 0x0467# FILENAME-NEXT: Section: N_UNDEF468# FILENAME-NEXT: Source Language ID: TB_C (0x0)469# FILENAME-NEXT: CPU Version ID: TCPU_INVALID (0x0)470# FILENAME-NEXT: StorageClass: C_FILE (0x67)471# FILENAME-NEXT: NumberOfAuxEntries: 1472# FILENAME-NEXT: File Auxiliary Entry {473# FILENAME-NEXT: Index: 1474# FILENAME-NEXT: Name: fileNameInStringTable475# FILENAME-NEXT: Type: XFT_CD (0x80)476# FILENAME-NEXT: }477# FILENAME-NEXT: }478# FILENAME-NEXT: ]479# FILENAME-NEXT: StringTable {480# FILENAME-NEXT: Length: 26481# FILENAME-NEXT: [ 4] fileNameInStringTable 482# FILENAME-NEXT: }483 484--- !XCOFF485FileHeader:486 MagicNumber: 0x1DF487Symbols:488 - Name: aux_file489 StorageClass: C_FILE490 NumberOfAuxEntries: 1491 AuxEntries:492 - Type: AUX_FILE493 FileNameOrString: fileNameInStringTable494 FileStringType: XFT_CD495 496## Case6: show that yaml2obj reports an error when trying to write497## the AUX_STAT symbol for XCOFF64.498# RUN: not yaml2obj %s --docnum=4 -o %t6 2>&1 | FileCheck %s \499# RUN: --check-prefix=STAT64500 501# STAT64: error: an auxiliary symbol of type AUX_STAT cannot be defined in XCOFF64502 503--- !XCOFF504FileHeader:505 MagicNumber: 0x1F7506Symbols:507 - StorageClass: C_STAT508 NumberOfAuxEntries: 1509 AuxEntries:510 - Type: AUX_STAT511 512## Case7: show that yaml2obj reports an error when trying to write513## the AUX_EXCEPT symbol for XCOFF32.514# RUN: not yaml2obj %s --docnum=5 -o %t7 2>&1 | FileCheck %s \515# RUN: --check-prefix=EXCEPT32516 517# EXCEPT32: error: an auxiliary symbol of type AUX_EXCEPT cannot be defined in XCOFF32518 519--- !XCOFF520FileHeader:521 MagicNumber: 0x1DF522Symbols:523 - StorageClass: C_EXT524 NumberOfAuxEntries: 1525 AuxEntries:526 - Type: AUX_EXCEPT527 528## Case8: show that yaml2obj reports an error when the specified value529## of NumberOfAuxEntries is less than the actual number.530# RUN: not yaml2obj %s --docnum=6 -o %t8 2>&1 | FileCheck %s \531# RUN: --check-prefix=AUXCOUNT532 533# AUXCOUNT: error: specified NumberOfAuxEntries 1 is less than the actual number of auxiliary entries 2534 535--- !XCOFF536FileHeader:537 MagicNumber: 0x1DF538Symbols:539 - StorageClass: C_EXT540 NumberOfAuxEntries: 1541 AuxEntries:542 - Type: AUX_FCN543 - Type: AUX_CSECT544 545## Case9: pad with zeros when the specified value of NumberOfAuxEntries546## is greater than the actual number.547# RUN: yaml2obj %s --docnum=7 -o %t9548# RUN: llvm-readobj --syms %t9 | FileCheck %s --check-prefix=AUXNUM549 550# AUXNUM: Symbols [551# AUXNUM-NEXT: Symbol {552# AUXNUM-NEXT: Index: 0553# AUXNUM-NEXT: Name: 554# AUXNUM-NEXT: Value (SymbolTableIndex): 0x0555# AUXNUM-NEXT: Section: N_UNDEF556# AUXNUM-NEXT: Source Language ID: TB_C (0x0)557# AUXNUM-NEXT: CPU Version ID: TCPU_INVALID (0x0)558# AUXNUM-NEXT: StorageClass: C_FILE (0x67)559# AUXNUM-NEXT: NumberOfAuxEntries: 2560# AUXNUM-NEXT: File Auxiliary Entry {561# AUXNUM-NEXT: Index: 1562# AUXNUM-NEXT: Name: foo563# AUXNUM-NEXT: Type: XFT_FN (0x0)564# AUXNUM-NEXT: }565# AUXNUM-NEXT: File Auxiliary Entry {566# AUXNUM-NEXT: Index: 2567# AUXNUM-NEXT: Name: 568# AUXNUM-NEXT: Type: XFT_FN (0x0)569# AUXNUM-NEXT: }570# AUXNUM-NEXT: }571# AUXNUM-NEXT: ]572 573--- !XCOFF574FileHeader:575 MagicNumber: 0x1DF576Symbols:577 - StorageClass: C_FILE578 NumberOfAuxEntries: 2579 AuxEntries:580 - Type: AUX_FILE581 FileNameOrString: foo582 583## Case10: Specify a SymbolType outside the range of field definition.584# RUN: not yaml2obj %s -DSYMTYPE=8 --docnum=8 -o %t10 2>&1 | \ 585# RUN: FileCheck %s --check-prefix BADSYMTYPE586 587# BADSYMTYPE: error: symbol type must be less than 8588 589## Case11: Specify a SymbolType outside the range of its enumeration.590# RUN: yaml2obj %s -DSYMTYPE=7 --docnum=8 -o %t11591# RUN: llvm-readobj --syms %t11 | FileCheck %s --check-prefix=STYPE592 593--- !XCOFF594FileHeader:595 MagicNumber: 0x1DF596Symbols:597 - Name: aux_fcn_csect598 StorageClass: C_EXT599 Type: 0x20600 AuxEntries:601 - Type: AUX_CSECT602 SymbolAlignment: 4603 SymbolType: [[SYMTYPE=<none>]]604 605# STYPE: SymbolAlignmentLog2: 4606# STYPE-NEXT: SymbolType: 0x7607