1## Test that we can explicitly specify all the fields. 2# RUN: yaml2obj %s -o %t 3# RUN: llvm-readobj --headers --symbols %t | FileCheck %s 4 5--- !XCOFF 6FileHeader: 7 MagicNumber: 0x1DF 8 NumberOfSections: 2 9 CreationTime: 0 10 OffsetToSymbolTable: 0x7A 11 EntriesInSymbolTable: 4 12 AuxiliaryHeaderSize: 0 13 Flags: 0x0 14Sections: 15 - Name: .text 16 Address: 0x0 17 Size: 0x8 18 FileOffsetToData: 0x64 19 FileOffsetToRelocations: 0x0 20 FileOffsetToLineNumbers: 0x0 21 NumberOfRelocations: 0x0 22 NumberOfLineNumbers: 0x0 23 Flags: [ STYP_TEXT ] 24 SectionData: "3860000048" 25 - Name: .data 26 Address: 0x8 27 Size: 0x4 28 FileOffsetToData: 0x6C 29 FileOffsetToRelocations: 0x70 30 FileOffsetToLineNumbers: 0x0 31 NumberOfRelocations: 0x1 32 NumberOfLineNumbers: 0x0 33 Flags: [ STYP_DATA ] 34 SectionData: "00000088" 35 Relocations: 36 - Address: 0x80 37 Symbol: 0x21 38 Info: 0x1F 39 Type: 0x0 40Symbols: 41 - Name: .text 42 Value: 0x0 43 Section: .text 44 Type: 0x0 45 StorageClass: C_STAT 46 NumberOfAuxEntries: 1 47 - Name: .data 48 Value: 0x80 49 Section: .data 50 Type: 0x0 51 StorageClass: C_STAT 52 NumberOfAuxEntries: 1 53 54# CHECK: FileHeader { 55# CHECK-NEXT: Magic: 0x1DF 56# CHECK-NEXT: NumberOfSections: 2 57# CHECK-NEXT: TimeStamp: None (0x0) 58# CHECK-NEXT: SymbolTableOffset: 0x7A 59# CHECK-NEXT: SymbolTableEntries: 4 60# CHECK-NEXT: OptionalHeaderSize: 0x0 61# CHECK-NEXT: Flags: 0x0 62# CHECK-NEXT: } 63# CHECK-NEXT: AuxiliaryHeader { 64# CHECK-NEXT: } 65# CHECK-NEXT: Sections [ 66# CHECK-NEXT: Section { 67# CHECK-NEXT: Index: 1 68# CHECK-NEXT: Name: .text 69# CHECK-NEXT: PhysicalAddress: 0x0 70# CHECK-NEXT: VirtualAddress: 0x0 71# CHECK-NEXT: Size: 0x8 72# CHECK-NEXT: RawDataOffset: 0x64 73# CHECK-NEXT: RelocationPointer: 0x0 74# CHECK-NEXT: LineNumberPointer: 0x0 75# CHECK-NEXT: NumberOfRelocations: 0 76# CHECK-NEXT: NumberOfLineNumbers: 0 77# CHECK-NEXT: Type: STYP_TEXT (0x20) 78# CHECK-NEXT: } 79# CHECK-NEXT: Section { 80# CHECK-NEXT: Index: 2 81# CHECK-NEXT: Name: .data 82# CHECK-NEXT: PhysicalAddress: 0x8 83# CHECK-NEXT: VirtualAddress: 0x8 84# CHECK-NEXT: Size: 0x4 85# CHECK-NEXT: RawDataOffset: 0x6C 86# CHECK-NEXT: RelocationPointer: 0x70 87# CHECK-NEXT: LineNumberPointer: 0x0 88# CHECK-NEXT: NumberOfRelocations: 1 89# CHECK-NEXT: NumberOfLineNumbers: 0 90# CHECK-NEXT: Type: STYP_DATA (0x40) 91# CHECK-NEXT: } 92# CHECK-NEXT: ] 93# CHECK-NEXT: Symbols [ 94# CHECK-NEXT: Symbol { 95# CHECK-NEXT: Index: 0 96# CHECK-NEXT: Name: .text 97# CHECK-NEXT: Value (RelocatableAddress): 0x0 98# CHECK-NEXT: Section: .text 99# CHECK-NEXT: Type: 0x0 100# CHECK-NEXT: StorageClass: C_STAT (0x3) 101# CHECK-NEXT: NumberOfAuxEntries: 1 102# CHECK-NEXT: Sect Auxiliary Entry For Stat { 103# CHECK-NEXT: Index: 1 104# CHECK-NEXT: SectionLength: 0 105# CHECK-NEXT: NumberOfRelocEnt: 0 106# CHECK-NEXT: NumberOfLineNum: 0 107# CHECK-NEXT: } 108# CHECK-NEXT: } 109# CHECK-NEXT: Symbol { 110# CHECK-NEXT: Index: 2 111# CHECK-NEXT: Name: .data 112# CHECK-NEXT: Value (RelocatableAddress): 0x80 113# CHECK-NEXT: Section: .data 114# CHECK-NEXT: Type: 0x0 115# CHECK-NEXT: StorageClass: C_STAT (0x3) 116# CHECK-NEXT: NumberOfAuxEntries: 1 117# CHECK-NEXT: Sect Auxiliary Entry For Stat { 118# CHECK-NEXT: Index: 3 119# CHECK-NEXT: SectionLength: 0 120# CHECK-NEXT: NumberOfRelocEnt: 0 121# CHECK-NEXT: NumberOfLineNum: 0 122# CHECK-NEXT: } 123# CHECK-NEXT: } 124# CHECK-NEXT: ] 125