brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.3 KiB · 8155ac1 Raw
327 lines · yaml
1## Check that obj2yaml can parse auxiliary symbols for XCOFF object file correctly.2 3## 32-bit4# RUN: yaml2obj %s --docnum=1 -o %t325# RUN: obj2yaml %t32 | FileCheck %s --check-prefix=CHECK326 7# CHECK32:      --- !XCOFF8# CHECK32-NEXT: FileHeader:9# CHECK32-NEXT:   MagicNumber:     0x1DF10# CHECK32-NEXT:   NumberOfSections: 011# CHECK32-NEXT:   CreationTime:    012# CHECK32-NEXT:   OffsetToSymbolTable: 0x1413# CHECK32-NEXT:   EntriesInSymbolTable: 1314# CHECK32-NEXT:   AuxiliaryHeaderSize: 015# CHECK32-NEXT:   Flags:           0x016# CHECK32-NEXT: Symbols:17# CHECK32-NEXT:   - Name:            ''18# CHECK32-NEXT:     Value:           0x019# CHECK32-NEXT:     Section:         N_UNDEF20# CHECK32-NEXT:     Type:            0x021# CHECK32-NEXT:     StorageClass:    C_FILE22# CHECK32-NEXT:     NumberOfAuxEntries: 123# CHECK32-NEXT:     AuxEntries:24# CHECK32-NEXT:       - Type:            AUX_FILE25# CHECK32-NEXT:         FileNameOrString: FileName26# CHECK32-NEXT:         FileStringType:  XFT_CD27# CHECK32-NEXT:   - Name:            ''28# CHECK32-NEXT:     Value:           0x029# CHECK32-NEXT:     Section:         N_UNDEF30# CHECK32-NEXT:     Type:            0x031# CHECK32-NEXT:     StorageClass:    C_HIDEXT32# CHECK32-NEXT:     NumberOfAuxEntries: 133# CHECK32-NEXT:     AuxEntries:34# CHECK32-NEXT:       - Type:            AUX_CSECT35# CHECK32-NEXT:         ParameterHashIndex: 136# CHECK32-NEXT:         TypeChkSectNum:  237# CHECK32-NEXT:         SymbolType: XTY_SD38# CHECK32-NEXT:         SymbolAlignment: 539# CHECK32-NEXT:         StorageMappingClass: XMC_PR40# CHECK32-NEXT:         SectionOrLength: 341# CHECK32-NEXT:         StabInfoIndex:   442# CHECK32-NEXT:         StabSectNum:     543# CHECK32-NEXT:   - Name:            ''44# CHECK32-NEXT:     Value:           0x045# CHECK32-NEXT:     Section:         N_UNDEF46# CHECK32-NEXT:     Type:            0x047# CHECK32-NEXT:     StorageClass:    C_EXT48# CHECK32-NEXT:     NumberOfAuxEntries: 249# CHECK32-NEXT:     AuxEntries:50# CHECK32-NEXT:       - Type:            AUX_FCN51# CHECK32-NEXT:         OffsetToExceptionTbl: 152# CHECK32-NEXT:         SizeOfFunction:  253# CHECK32-NEXT:         SymIdxOfNextBeyond: 354# CHECK32-NEXT:         PtrToLineNum:    455# CHECK32-NEXT:       - Type:            AUX_CSECT56# CHECK32-NEXT:         ParameterHashIndex: 157# CHECK32-NEXT:         TypeChkSectNum:  258# CHECK32-NEXT:         SymbolType: XTY_SD59# CHECK32-NEXT:         SymbolAlignment: 260# CHECK32-NEXT:         StorageMappingClass: XMC_PR61# CHECK32-NEXT:         SectionOrLength: 462# CHECK32-NEXT:         StabInfoIndex:   563# CHECK32-NEXT:         StabSectNum:     664# CHECK32-NEXT:   - Name:            ''65# CHECK32-NEXT:     Value:           0x066# CHECK32-NEXT:     Section:         N_UNDEF67# CHECK32-NEXT:     Type:            0x068# CHECK32-NEXT:     StorageClass:    C_DWARF69# CHECK32-NEXT:     NumberOfAuxEntries: 170# CHECK32-NEXT:     AuxEntries:71# CHECK32-NEXT:       - Type:            AUX_SECT72# CHECK32-NEXT:         LengthOfSectionPortion: 4473# CHECK32-NEXT:         NumberOfRelocEnt: 174# CHECK32-NEXT:   - Name:            ''75# CHECK32-NEXT:     Value:           0x076# CHECK32-NEXT:     Section:         N_UNDEF77# CHECK32-NEXT:     Type:            0x078# CHECK32-NEXT:     StorageClass:    C_STAT79# CHECK32-NEXT:     NumberOfAuxEntries: 180# CHECK32-NEXT:     AuxEntries:81# CHECK32-NEXT:       - Type:            AUX_STAT82# CHECK32-NEXT:         SectionLength:   183# CHECK32-NEXT:         NumberOfRelocEnt: 284# CHECK32-NEXT:         NumberOfLineNum: 385# CHECK32-NEXT:   - Name:            ''86# CHECK32-NEXT:     Value:           0x087# CHECK32-NEXT:     Section:         N_UNDEF88# CHECK32-NEXT:     Type:            0x089# CHECK32-NEXT:     StorageClass:    C_BLOCK90# CHECK32-NEXT:     NumberOfAuxEntries: 191# CHECK32-NEXT:     AuxEntries:92# CHECK32-NEXT:       - Type:            AUX_SYM93# CHECK32-NEXT:         LineNumHi:       194# CHECK32-NEXT:         LineNumLo:       295 96--- !XCOFF97FileHeader:98  MagicNumber: 0x01DF99Symbols:100  - StorageClass:    C_FILE101    AuxEntries:102      - Type:             AUX_FILE103        FileNameOrString: FileName104        FileStringType:   XFT_CD105  - StorageClass:    C_HIDEXT106    AuxEntries:107      - Type:               AUX_CSECT108        ParameterHashIndex: 1109        TypeChkSectNum:     2110        SymbolAlignmentAndType: 41111        SectionOrLength:    3112        StabInfoIndex:      4113        StabSectNum:        5114  - StorageClass:    C_EXT115    AuxEntries:116      - Type:                 AUX_FCN117        OffsetToExceptionTbl: 1118        SizeOfFunction:       2119        SymIdxOfNextBeyond:   3120        PtrToLineNum:         4121      - Type:               AUX_CSECT122        ParameterHashIndex: 1123        TypeChkSectNum:     2124        SymbolAlignmentAndType: 17125        SectionOrLength:    4126        StabInfoIndex:      5127        StabSectNum:        6128  - StorageClass:    C_DWARF129    AuxEntries:130      - Type:                   AUX_SECT131        LengthOfSectionPortion: 44132        NumberOfRelocEnt:       1133  - StorageClass:    C_STAT134    AuxEntries:135      - Type:             AUX_STAT136        SectionLength:    1137        NumberOfRelocEnt: 2138        NumberOfLineNum:  3139  - StorageClass:    C_BLOCK140    AuxEntries:141      - Type:            AUX_SYM142        LineNumHi:       1143        LineNumLo:       2144 145## 64-bit146# RUN: yaml2obj %s --docnum=2 -o %t64147# RUN: obj2yaml %t64 | FileCheck %s --check-prefix=CHECK64148 149# CHECK64:      --- !XCOFF150# CHECK64-NEXT: FileHeader:151# CHECK64-NEXT:   MagicNumber:     0x1F7152# CHECK64-NEXT:   NumberOfSections: 0153# CHECK64-NEXT:   CreationTime:    0154# CHECK64-NEXT:   OffsetToSymbolTable: 0x18155# CHECK64-NEXT:   EntriesInSymbolTable: 12156# CHECK64-NEXT:   AuxiliaryHeaderSize: 0157# CHECK64-NEXT:   Flags:           0x0158# CHECK64-NEXT: Symbols:159# CHECK64-NEXT:   - Name:            ''160# CHECK64-NEXT:     Value:           0x0161# CHECK64-NEXT:     Section:         N_UNDEF162# CHECK64-NEXT:     Type:            0x0163# CHECK64-NEXT:     StorageClass:    C_FILE164# CHECK64-NEXT:     NumberOfAuxEntries: 1165# CHECK64-NEXT:     AuxEntries:166# CHECK64-NEXT:       - Type:            AUX_FILE167# CHECK64-NEXT:         FileNameOrString: FileName168# CHECK64-NEXT:         FileStringType:  XFT_CD169# CHECK64-NEXT:   - Name:            ''170# CHECK64-NEXT:     Value:           0x0171# CHECK64-NEXT:     Section:         N_UNDEF172# CHECK64-NEXT:     Type:            0x0173# CHECK64-NEXT:     StorageClass:    C_HIDEXT174# CHECK64-NEXT:     NumberOfAuxEntries: 1175# CHECK64-NEXT:     AuxEntries:176# CHECK64-NEXT:       - Type:            AUX_CSECT177# CHECK64-NEXT:         ParameterHashIndex: 1178# CHECK64-NEXT:         TypeChkSectNum:  2179# CHECK64-NEXT:         SymbolType: XTY_SD180# CHECK64-NEXT:         SymbolAlignment: 5181# CHECK64-NEXT:         StorageMappingClass: XMC_PR182# CHECK64-NEXT:         SectionOrLengthLo: 3183# CHECK64-NEXT:         SectionOrLengthHi: 4184# CHECK64-NEXT:   - Name:            ''185# CHECK64-NEXT:     Value:           0x0186# CHECK64-NEXT:     Section:         N_UNDEF187# CHECK64-NEXT:     Type:            0x0188# CHECK64-NEXT:     StorageClass:    C_EXT189# CHECK64-NEXT:     NumberOfAuxEntries: 3190# CHECK64-NEXT:     AuxEntries:191# CHECK64-NEXT:       - Type:            AUX_FCN192# CHECK64-NEXT:         SizeOfFunction:  3193# CHECK64-NEXT:         SymIdxOfNextBeyond: 2194# CHECK64-NEXT:         PtrToLineNum:    1195# CHECK64-NEXT:       - Type:            AUX_EXCEPT196# CHECK64-NEXT:         OffsetToExceptionTbl: 1197# CHECK64-NEXT:         SizeOfFunction:  2198# CHECK64-NEXT:         SymIdxOfNextBeyond: 3199# CHECK64-NEXT:       - Type:            AUX_CSECT200# CHECK64-NEXT:         ParameterHashIndex: 1201# CHECK64-NEXT:         TypeChkSectNum:  2202# CHECK64-NEXT:         SymbolType: XTY_SD203# CHECK64-NEXT:         SymbolAlignment: 2204# CHECK64-NEXT:         StorageMappingClass: XMC_PR205# CHECK64-NEXT:         SectionOrLengthLo: 3206# CHECK64-NEXT:         SectionOrLengthHi: 4207# CHECK64-NEXT:   - Name:            ''208# CHECK64-NEXT:     Value:           0x0209# CHECK64-NEXT:     Section:         N_UNDEF210# CHECK64-NEXT:     Type:            0x0211# CHECK64-NEXT:     StorageClass:    C_DWARF212# CHECK64-NEXT:     NumberOfAuxEntries: 1213# CHECK64-NEXT:     AuxEntries:214# CHECK64-NEXT:       - Type:            AUX_SECT215# CHECK64-NEXT:         LengthOfSectionPortion: 44216# CHECK64-NEXT:         NumberOfRelocEnt: 1217# CHECK64-NEXT:   - Name:            ''218# CHECK64-NEXT:     Value:           0x0219# CHECK64-NEXT:     Section:         N_UNDEF220# CHECK64-NEXT:     Type:            0x0221# CHECK64-NEXT:     StorageClass:    C_BLOCK222# CHECK64-NEXT:     NumberOfAuxEntries: 1223# CHECK64-NEXT:     AuxEntries:224# CHECK64-NEXT:       - Type:            AUX_SYM225# CHECK64-NEXT:         LineNum:         1226 227--- !XCOFF228FileHeader:229  MagicNumber:     0x1F7230Symbols:231  - StorageClass:    C_FILE232    AuxEntries:233      - Type:             AUX_FILE234        FileNameOrString: FileName235        FileStringType:   XFT_CD236  - StorageClass:    C_HIDEXT237    AuxEntries:238      - Type:               AUX_CSECT239        ParameterHashIndex: 1240        TypeChkSectNum:     2241        SymbolAlignmentAndType: 41242        SectionOrLengthLo:  3243        SectionOrLengthHi:  4244  - StorageClass:    C_EXT245    AuxEntries:246      - Type:               AUX_FCN247        SizeOfFunction:     3248        SymIdxOfNextBeyond: 2249        PtrToLineNum:       1250      - Type:                 AUX_EXCEPT251        OffsetToExceptionTbl: 1252        SizeOfFunction:       2253        SymIdxOfNextBeyond:   3254      - Type:               AUX_CSECT255        ParameterHashIndex: 1256        TypeChkSectNum:     2257        SymbolAlignmentAndType: 17258        SectionOrLengthLo:  3259        SectionOrLengthHi:  4260  - StorageClass:    C_DWARF261    AuxEntries:262      - Type:                   AUX_SECT263        LengthOfSectionPortion: 44264        NumberOfRelocEnt:       1265  - StorageClass:    C_BLOCK266    AuxEntries:267      - Type:            AUX_SYM268        LineNum:         1269 270## Check that error messages are reported appropriately.271 272# RUN: yaml2obj %s --docnum=3 -o - | not obj2yaml 2>&1 | FileCheck %s --check-prefix=ERROR1273# ERROR1: failed to parse symbol "SYM_STAT" with index of 1: expected 1 aux symbol for C_STAT, while got 2274 275--- !XCOFF276FileHeader:277  MagicNumber: 0x1DF278Symbols:279  - Name:               SYM280  - Name:               SYM_STAT281    StorageClass:       C_STAT282    NumberOfAuxEntries: 2283    AuxEntries:284      - Type: AUX_STAT285      - Type: AUX_STAT286 287# RUN: yaml2obj %s --docnum=4 -o - | not obj2yaml 2>&1 | FileCheck %s --check-prefix=ERROR2288# ERROR2: failed to parse symbol "SYM_BLOCK" with index of 0: expected 1 aux symbol for C_BLOCK or C_FCN, while got 2289 290--- !XCOFF291FileHeader:292  MagicNumber: 0x1DF293Symbols:294  - Name:               SYM_BLOCK295    StorageClass:       C_BLOCK296    NumberOfAuxEntries: 2297    AuxEntries:298      - Type: AUX_SYM299      - Type: AUX_SYM300 301# RUN: yaml2obj %s --docnum=5 -o - | not obj2yaml 2>&1 | FileCheck %s --check-prefix=ERROR3302# ERROR3: failed to parse symbol "SYM_DWARF" with index of 0: expected 1 aux symbol for C_DWARF, while got 2303 304--- !XCOFF305FileHeader:306  MagicNumber: 0x1DF307Symbols:308  - Name:               SYM_DWARF309    StorageClass:       C_DWARF310    NumberOfAuxEntries: 2311    AuxEntries:312      - Type: AUX_SECT313      - Type: AUX_SECT314 315# RUN: yaml2obj %s --docnum=6 -o - | not obj2yaml 2>&1 | FileCheck %s --check-prefix=ERROR4316# ERROR4: failed to parse symbol "SYM_EXT" with index of 0: invalid auxiliary symbol type: 252317 318--- !XCOFF319FileHeader:320  MagicNumber: 0x1F7321Symbols:322  - Name:         SYM_EXT323    StorageClass: C_EXT324    AuxEntries:325      - Type: AUX_FILE326      - Type: AUX_CSECT327