215 lines · plain
1# RUN: yaml2obj %s -o %t.obj2#3# RUN: lld-link /out:%t.exe /entry:main %t.obj4# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=HEADER %s5# RUN: llvm-objdump --unwind-info %t.exe | FileCheck --check-prefix=UNWIND %s6#7# RUN: lld-link /merge:.pdata=.rdata /out:%t.exe /entry:main %t.obj8# RUN: llvm-readobj --file-headers --sections %t.exe | FileCheck -check-prefix=HEADER-MERGE %s9#10# HEADER: ExceptionTableRVA: 0x300011#12# FIXME: llvm-readobj currently does not understand files with .pdata merged13# into .rdata. But we can at least check that the section headers look correct.14#15# HEADER-MERGE: ExceptionTableRVA: 0x200416# HEADER-MERGE-NEXT: ExceptionTableSize: 0x3017# HEADER-MERGE: Name: .rdata18# HEADER-MERGE-NEXT: VirtualSize: 0x7819# HEADER-MERGE-NEXT: VirtualAddress: 0x200020#21# UNWIND: Function Table:22# UNWIND: Start Address: 0x100023# UNWIND: End Address: 0x101b24# UNWIND: Unwind Info Address: 0x200425# UNWIND: Version: 126# UNWIND: Flags: 1 UNW_ExceptionHandler27# UNWIND: Size of prolog: 1828# UNWIND: Number of Codes: 829# UNWIND: Frame register: RBX30# UNWIND: Frame offset: 031# UNWIND: Unwind Codes:32# UNWIND: 0x12: UOP_SetFPReg33# UNWIND: 0x0f: UOP_PushNonVol RBX34# UNWIND: 0x0e: UOP_SaveXMM128 XMM8 [0x0000]35# UNWIND: 0x09: UOP_SaveNonVol RSI [0x0010]36# UNWIND: 0x04: UOP_AllocSmall 2437# UNWIND: 0x00: UOP_PushMachFrame w/o error code38# UNWIND: Function Table:39# UNWIND: Start Address: 0x101240# UNWIND: End Address: 0x101241# UNWIND: Unwind Info Address: 0x202042# UNWIND: Version: 143# UNWIND: Flags: 4 UNW_ChainInfo44# UNWIND: Size of prolog: 045# UNWIND: Number of Codes: 046# UNWIND: No frame pointer used47# UNWIND: Function Table:48# UNWIND: Start Address: 0x101b49# UNWIND: End Address: 0x101c50# UNWIND: Unwind Info Address: 0x203051# UNWIND: Version: 152# UNWIND: Flags: 053# UNWIND: Size of prolog: 054# UNWIND: Number of Codes: 055# UNWIND: No frame pointer used56# UNWIND: Function Table:57# UNWIND: Start Address: 0x101c58# UNWIND: End Address: 0x103959# UNWIND: Unwind Info Address: 0x203860# UNWIND: Version: 161# UNWIND: Flags: 062# UNWIND: Size of prolog: 1463# UNWIND: Number of Codes: 664# UNWIND: No frame pointer used65# UNWIND: Unwind Codes:66# UNWIND: 0x0e: UOP_AllocLarge 845412867# UNWIND: 0x07: UOP_AllocLarge 819068# UNWIND: 0x00: UOP_PushMachFrame w/o error code69 70--- !COFF71header:72 Machine: IMAGE_FILE_MACHINE_AMD6473 Characteristics: [ ]74sections:75 - Name: .text76 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]77 Alignment: 478 SectionData: 4883EC184889742410440F110424534889E3488D235B4883C418C3C34881ECF0FF00004881ECF0FF80004881C4F0FF80004881C4F0FF0000C379 - Name: .xdata80 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]81 Alignment: 482 SectionData: 0912080312030F300E880000096402000422001A000000000000000021000000000000001B000000000000000100000000000000010E06000E11F0FF80000701FE1F001A83 Relocations:84 - VirtualAddress: 2085 SymbolName: __C_specific_handler86 Type: IMAGE_REL_AMD64_ADDR32NB87 - VirtualAddress: 3288 SymbolName: func89 Type: IMAGE_REL_AMD64_ADDR32NB90 - VirtualAddress: 3691 SymbolName: func92 Type: IMAGE_REL_AMD64_ADDR32NB93 - VirtualAddress: 4094 SymbolName: .xdata95 Type: IMAGE_REL_AMD64_ADDR32NB96 - Name: .pdata97 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]98 Alignment: 499 SectionData: 000000001B0000000000000012000000120000001C00000000000000010000002C000000000000001D00000034000000100 Relocations:101 - VirtualAddress: 0102 SymbolName: func103 Type: IMAGE_REL_AMD64_ADDR32NB104 - VirtualAddress: 4105 SymbolName: func106 Type: IMAGE_REL_AMD64_ADDR32NB107 - VirtualAddress: 8108 SymbolName: .xdata109 Type: IMAGE_REL_AMD64_ADDR32NB110 - VirtualAddress: 12111 SymbolName: func112 Type: IMAGE_REL_AMD64_ADDR32NB113 - VirtualAddress: 16114 SymbolName: func115 Type: IMAGE_REL_AMD64_ADDR32NB116 - VirtualAddress: 20117 SymbolName: .xdata118 Type: IMAGE_REL_AMD64_ADDR32NB119 - VirtualAddress: 24120 SymbolName: smallFunc121 Type: IMAGE_REL_AMD64_ADDR32NB122 - VirtualAddress: 28123 SymbolName: smallFunc124 Type: IMAGE_REL_AMD64_ADDR32NB125 - VirtualAddress: 32126 SymbolName: .xdata127 Type: IMAGE_REL_AMD64_ADDR32NB128 - VirtualAddress: 36129 SymbolName: allocFunc130 Type: IMAGE_REL_AMD64_ADDR32NB131 - VirtualAddress: 40132 SymbolName: allocFunc133 Type: IMAGE_REL_AMD64_ADDR32NB134 - VirtualAddress: 44135 SymbolName: .xdata136 Type: IMAGE_REL_AMD64_ADDR32NB137 - Name: .rdata138 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]139 Alignment: 4140 SectionData: 00000000141symbols:142 - Name: .text143 Value: 0144 SectionNumber: 1145 SimpleType: IMAGE_SYM_TYPE_NULL146 ComplexType: IMAGE_SYM_DTYPE_NULL147 StorageClass: IMAGE_SYM_CLASS_STATIC148 SectionDefinition:149 Length: 57150 NumberOfRelocations: 0151 NumberOfLinenumbers: 0152 CheckSum: 0153 Number: 1154 - Name: .xdata155 Value: 0156 SectionNumber: 2157 SimpleType: IMAGE_SYM_TYPE_NULL158 ComplexType: IMAGE_SYM_DTYPE_NULL159 StorageClass: IMAGE_SYM_CLASS_STATIC160 SectionDefinition:161 Length: 68162 NumberOfRelocations: 4163 NumberOfLinenumbers: 0164 CheckSum: 0165 Number: 2166 - Name: .pdata167 Value: 0168 SectionNumber: 3169 SimpleType: IMAGE_SYM_TYPE_NULL170 ComplexType: IMAGE_SYM_DTYPE_NULL171 StorageClass: IMAGE_SYM_CLASS_STATIC172 SectionDefinition:173 Length: 48174 NumberOfRelocations: 12175 NumberOfLinenumbers: 0176 CheckSum: 0177 Number: 3178 - Name: func179 Value: 0180 SectionNumber: 1181 SimpleType: IMAGE_SYM_TYPE_NULL182 ComplexType: IMAGE_SYM_DTYPE_FUNCTION183 StorageClass: IMAGE_SYM_CLASS_EXTERNAL184 - Name: __C_specific_handler185 Value: 0186 SectionNumber: 0187 SimpleType: IMAGE_SYM_TYPE_NULL188 ComplexType: IMAGE_SYM_DTYPE_NULL189 StorageClass: IMAGE_SYM_CLASS_EXTERNAL190 - Name: smallFunc191 Value: 27192 SectionNumber: 1193 SimpleType: IMAGE_SYM_TYPE_NULL194 ComplexType: IMAGE_SYM_DTYPE_FUNCTION195 StorageClass: IMAGE_SYM_CLASS_EXTERNAL196 - Name: allocFunc197 Value: 28198 SectionNumber: 1199 SimpleType: IMAGE_SYM_TYPE_NULL200 ComplexType: IMAGE_SYM_DTYPE_FUNCTION201 StorageClass: IMAGE_SYM_CLASS_EXTERNAL202 - Name: main203 Value: 0204 SectionNumber: 1205 SimpleType: IMAGE_SYM_TYPE_NULL206 ComplexType: IMAGE_SYM_DTYPE_NULL207 StorageClass: IMAGE_SYM_CLASS_EXTERNAL208 - Name: __C_specific_handler209 Value: 0210 SectionNumber: 1211 SimpleType: IMAGE_SYM_TYPE_NULL212 ComplexType: IMAGE_SYM_DTYPE_NULL213 StorageClass: IMAGE_SYM_CLASS_EXTERNAL214...215