124 lines · yaml
1# RUN: yaml2obj %p/Inputs/delayimporttables-dll1.yaml -o %t1.obj2# RUN: yaml2obj %p/Inputs/delayimporttables-dll2.yaml -o %t2.obj3# RUN: yaml2obj %s -o %t.obj4# RUN: mkdir -p %t.dir5# RUN: lld-link /nodefaultlib /entry:DllMain /out:%t.dir/delayimporttables-dll1.dll /dll /implib:%t-dll1.lib %t1.obj6# RUN: lld-link /nodefaultlib /entry:DllMain /out:%t.dir/delayimporttables-dll2.dll /dll /implib:%t-dll2.lib %t2.obj7# RUN: lld-link /nodefaultlib /entry:main /out:%t.exe /delayload:delayimporttables-dll1.dll /delayload:delayimporttables-dll2.dll %t.obj %t-dll1.lib %t-dll2.lib8# RUN: llvm-readobj --coff-imports %t.exe |FileCheck %s9 10# CHECK: Format: COFF-x86-6411# CHECK-NEXT: Arch: x86_6412# CHECK-NEXT: AddressSize: 64bit13# CHECK-NEXT: DelayImport {14# CHECK-NEXT: Name: delayimporttables-dll1.dll15# CHECK-NEXT: Attributes: 0x116# CHECK-NEXT: ModuleHandle: 0x300017# CHECK-NEXT: ImportAddressTable: 0x301018# CHECK-NEXT: ImportNameTable: 0x206819# CHECK-NEXT: BoundDelayImportTable: 0x020# CHECK-NEXT: UnloadDelayImportTable: 0x021# CHECK-NEXT: Import {22# CHECK-NEXT: Symbol: one (0)23# CHECK-NEXT: Address: 0x14000104D24# CHECK-NEXT: }25# CHECK-NEXT: Import {26# CHECK-NEXT: Symbol: two (0)27# CHECK-NEXT: Address: 0x14000105928# CHECK-NEXT: }29# CHECK-NEXT: }30# CHECK-NEXT: DelayImport {31# CHECK-NEXT: Name: delayimporttables-dll2.dll32# CHECK-NEXT: Attributes: 0x133# CHECK-NEXT: ModuleHandle: 0x300834# CHECK-NEXT: ImportAddressTable: 0x302835# CHECK-NEXT: ImportNameTable: 0x208036# CHECK-NEXT: BoundDelayImportTable: 0x037# CHECK-NEXT: UnloadDelayImportTable: 0x038# CHECK-NEXT: Import {39# CHECK-NEXT: Symbol: left (0)40# CHECK-NEXT: Address: 0x1400010DC41# CHECK-NEXT: }42# CHECK-NEXT: Import {43# CHECK-NEXT: Symbol: right (0)44# CHECK-NEXT: Address: 0x1400010E845# CHECK-NEXT: }46# CHECK-NEXT: }47 48--- !COFF49header:50 Machine: IMAGE_FILE_MACHINE_AMD6451 Characteristics: [ ]52sections:53 - Name: .drectve54 Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]55 Alignment: 156 SectionData: 2020202F44454641554C544C49423A224C4942434D5422202F44454641554C544C49423A224F4C444E414D4553222057 - Name: '.text$mn'58 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]59 Alignment: 1660 SectionData: 4889542410894C24084883EC28FF1500000000FF1500000000FF1500000000FF150000000033C04883C428C3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC488954241048894C240833C0C361 Relocations:62 - VirtualAddress: 1563 SymbolName: __imp_one64 Type: IMAGE_REL_AMD64_REL3265 - VirtualAddress: 2166 SymbolName: __imp_two67 Type: IMAGE_REL_AMD64_REL3268 - VirtualAddress: 2769 SymbolName: __imp_left70 Type: IMAGE_REL_AMD64_REL3271 - VirtualAddress: 3372 SymbolName: __imp_right73 Type: IMAGE_REL_AMD64_REL3274symbols:75 - Name: .drectve76 Value: 077 SectionNumber: 178 SimpleType: IMAGE_SYM_TYPE_NULL79 ComplexType: IMAGE_SYM_DTYPE_NULL80 StorageClass: IMAGE_SYM_CLASS_STATIC81 SectionDefinition:82 Length: 4783 NumberOfRelocations: 084 NumberOfLinenumbers: 085 CheckSum: 086 Number: 087 - Name: __imp_one88 Value: 089 SectionNumber: 090 SimpleType: IMAGE_SYM_TYPE_NULL91 ComplexType: IMAGE_SYM_DTYPE_NULL92 StorageClass: IMAGE_SYM_CLASS_EXTERNAL93 - Name: __imp_two94 Value: 095 SectionNumber: 096 SimpleType: IMAGE_SYM_TYPE_NULL97 ComplexType: IMAGE_SYM_DTYPE_NULL98 StorageClass: IMAGE_SYM_CLASS_EXTERNAL99 - Name: __imp_left100 Value: 0101 SectionNumber: 0102 SimpleType: IMAGE_SYM_TYPE_NULL103 ComplexType: IMAGE_SYM_DTYPE_NULL104 StorageClass: IMAGE_SYM_CLASS_EXTERNAL105 - Name: __imp_right106 Value: 0107 SectionNumber: 0108 SimpleType: IMAGE_SYM_TYPE_NULL109 ComplexType: IMAGE_SYM_DTYPE_NULL110 StorageClass: IMAGE_SYM_CLASS_EXTERNAL111 - Name: main112 Value: 0113 SectionNumber: 2114 SimpleType: IMAGE_SYM_TYPE_NULL115 ComplexType: IMAGE_SYM_DTYPE_FUNCTION116 StorageClass: IMAGE_SYM_CLASS_EXTERNAL117 - Name: __delayLoadHelper2118 Value: 64119 SectionNumber: 2120 SimpleType: IMAGE_SYM_TYPE_NULL121 ComplexType: IMAGE_SYM_DTYPE_FUNCTION122 StorageClass: IMAGE_SYM_CLASS_EXTERNAL123...124