| ## This is a basic test to check if we can parse the XCOFF object file correctly. |
| # RUN: yaml2obj %s -DMAGIC=0x01DF -o %t-32 |
| # RUN: obj2yaml %t-32 | FileCheck %s --check-prefix=CHECK32 |
| # RUN: yaml2obj %s -DMAGIC=0x01F7 -o %t-64 |
| # RUN: obj2yaml %t-64 | FileCheck %s --check-prefix=CHECK64 |
| |
| # CHECK32: --- !XCOFF |
| # CHECK32-NEXT: FileHeader: |
| # CHECK32-NEXT: MagicNumber: 0x1DF |
| # CHECK32-NEXT: NumberOfSections: 2 |
| # CHECK32-NEXT: CreationTime: 0 |
| # CHECK32-NEXT: OffsetToSymbolTable: 0x80 |
| # CHECK32-NEXT: EntriesInSymbolTable: 4 |
| # CHECK32-NEXT: AuxiliaryHeaderSize: 0 |
| # CHECK32-NEXT: Flags: 0x0 |
| # CHECK32-NEXT: Sections: |
| # CHECK32-NEXT: - Name: .text |
| # CHECK32-NEXT: Address: 0x0 |
| # CHECK32-NEXT: Size: 0x4 |
| # CHECK32-NEXT: FileOffsetToData: 0x64 |
| # CHECK32-NEXT: FileOffsetToRelocations: 0x6C |
| # CHECK32-NEXT: FileOffsetToLineNumbers: 0x0 |
| # CHECK32-NEXT: NumberOfRelocations: 0x1 |
| # CHECK32-NEXT: NumberOfLineNumbers: 0x0 |
| # CHECK32-NEXT: Flags: [ STYP_TEXT ] |
| # CHECK32-NEXT: SectionData: '00007400' |
| # CHECK32-NEXT: Relocations: |
| # CHECK32-NEXT: - Address: 0xE |
| # CHECK32-NEXT: Symbol: 0x12 |
| # CHECK32-NEXT: Info: 0xF |
| # CHECK32-NEXT: Type: 0x3 |
| # CHECK32-NEXT: - Name: .data |
| # CHECK32-NEXT: Address: 0x4 |
| # CHECK32-NEXT: Size: 0x4 |
| # CHECK32-NEXT: FileOffsetToData: 0x68 |
| # CHECK32-NEXT: FileOffsetToRelocations: 0x76 |
| # CHECK32-NEXT: FileOffsetToLineNumbers: 0x0 |
| # CHECK32-NEXT: NumberOfRelocations: 0x1 |
| # CHECK32-NEXT: NumberOfLineNumbers: 0x0 |
| # CHECK32-NEXT: Flags: [ STYP_DATA ] |
| # CHECK32-NEXT: SectionData: '00007700' |
| # CHECK32-NEXT: Relocations: |
| # CHECK32-NEXT: - Address: 0x60 |
| # CHECK32-NEXT: Symbol: 0x8 |
| # CHECK32-NEXT: Info: 0x1F |
| # CHECK32-NEXT: Type: 0x0 |
| # CHECK32-NEXT: Symbols: |
| # CHECK32-NEXT: - Name: TestforXcoff |
| # CHECK32-NEXT: Value: 0x0 |
| # CHECK32-NEXT: Section: N_UNDEF |
| # CHECK32-NEXT: Type: 0x0 |
| # CHECK32-NEXT: StorageClass: C_EXT |
| # CHECK32-NEXT: NumberOfAuxEntries: 1 |
| # CHECK32-NEXT: - Name: .data |
| # CHECK32-NEXT: Value: 0x70 |
| # CHECK32-NEXT: Section: .data |
| # CHECK32-NEXT: Type: 0x0 |
| # CHECK32-NEXT: StorageClass: C_HIDEXT |
| # CHECK32-NEXT: NumberOfAuxEntries: 1 |
| |
| # CHECK64: --- !XCOFF |
| # CHECK64-NEXT: FileHeader: |
| # CHECK64-NEXT: MagicNumber: 0x1F7 |
| # CHECK64-NEXT: NumberOfSections: 2 |
| # CHECK64-NEXT: CreationTime: 0 |
| # CHECK64-NEXT: OffsetToSymbolTable: 0xCC |
| # CHECK64-NEXT: EntriesInSymbolTable: 4 |
| # CHECK64-NEXT: AuxiliaryHeaderSize: 0 |
| # CHECK64-NEXT: Flags: 0x0 |
| # CHECK64-NEXT: Sections: |
| # CHECK64-NEXT: - Name: .text |
| # CHECK64-NEXT: Address: 0x0 |
| # CHECK64-NEXT: Size: 0x4 |
| # CHECK64-NEXT: FileOffsetToData: 0xA8 |
| # CHECK64-NEXT: FileOffsetToRelocations: 0xB0 |
| # CHECK64-NEXT: FileOffsetToLineNumbers: 0x0 |
| # CHECK64-NEXT: NumberOfRelocations: 0x1 |
| # CHECK64-NEXT: NumberOfLineNumbers: 0x0 |
| # CHECK64-NEXT: Flags: [ STYP_TEXT ] |
| # CHECK64-NEXT: SectionData: '00007400' |
| # CHECK64-NEXT: Relocations: |
| # CHECK64-NEXT: - Address: 0xE |
| # CHECK64-NEXT: Symbol: 0x12 |
| # CHECK64-NEXT: Info: 0xF |
| # CHECK64-NEXT: Type: 0x3 |
| # CHECK64-NEXT: - Name: .data |
| # CHECK64-NEXT: Address: 0x4 |
| # CHECK64-NEXT: Size: 0x4 |
| # CHECK64-NEXT: FileOffsetToData: 0xAC |
| # CHECK64-NEXT: FileOffsetToRelocations: 0xBE |
| # CHECK64-NEXT: FileOffsetToLineNumbers: 0x0 |
| # CHECK64-NEXT: NumberOfRelocations: 0x1 |
| # CHECK64-NEXT: NumberOfLineNumbers: 0x0 |
| # CHECK64-NEXT: Flags: [ STYP_DATA ] |
| # CHECK64-NEXT: SectionData: '00007700' |
| # CHECK64-NEXT: Relocations: |
| # CHECK64-NEXT: - Address: 0x60 |
| # CHECK64-NEXT: Symbol: 0x8 |
| # CHECK64-NEXT: Info: 0x1F |
| # CHECK64-NEXT: Type: 0x0 |
| # CHECK64-NEXT: Symbols: |
| # CHECK64-NEXT: - Name: TestforXcoff |
| # CHECK64-NEXT: Value: 0x0 |
| # CHECK64-NEXT: Section: N_UNDEF |
| # CHECK64-NEXT: Type: 0x0 |
| # CHECK64-NEXT: StorageClass: C_EXT |
| # CHECK64-NEXT: NumberOfAuxEntries: 1 |
| # CHECK64-NEXT: - Name: .data |
| # CHECK64-NEXT: Value: 0x70 |
| # CHECK64-NEXT: Section: .data |
| # CHECK64-NEXT: Type: 0x0 |
| # CHECK64-NEXT: StorageClass: C_HIDEXT |
| # CHECK64-NEXT: NumberOfAuxEntries: 1 |
| |
| --- !XCOFF |
| FileHeader: |
| MagicNumber: [[MAGIC]] |
| Sections: |
| - Name: .text |
| Flags: [ STYP_TEXT ] |
| SectionData: '00007400' |
| Relocations: |
| - Address: 0xE |
| Symbol: 0x12 |
| Info: 0xF |
| Type: 0x3 |
| - Name: .data |
| Flags: [ STYP_DATA ] |
| SectionData: '00007700' |
| Relocations: |
| - Address: 0x60 |
| Symbol: 0x8 |
| Info: 0x1F |
| Type: 0x0 |
| Symbols: |
| - Name: TestforXcoff |
| Value: 0x0 |
| Section: N_UNDEF |
| Type: 0x0 |
| StorageClass: C_EXT |
| NumberOfAuxEntries: 1 |
| - Name: .data |
| Value: 0x70 |
| Section: .data |
| Type: 0x0 |
| StorageClass: C_HIDEXT |
| NumberOfAuxEntries: 1 |