1Make a DLL that exports a few functions, then make a DLL with PDBs that imports 2them. Check that the __imp_ pointer and the generated thunks appear in the 3publics stream. 4 5RUN: yaml2obj < %p/Inputs/export.yaml > %t1.obj 6RUN: lld-link /out:%t1.dll /dll %t1.obj /implib:%t1.lib \ 7RUN: /export:exportfn1 /export:exportfn2 8RUN: yaml2obj < %p/Inputs/import.yaml > %t2.obj 9RUN: lld-link /out:%t2.exe /pdb:%t2.pdb /pdbaltpath:test.pdb \ 10RUN: /debug /entry:main %t2.obj %t1.lib 11RUN: llvm-pdbutil dump %t2.pdb -publics -section-contribs | FileCheck %s 12 13CHECK: Public Symbols 14CHECK-NEXT: ============================================================ 15CHECK-NEXT: Records 16CHECK-NEXT: 112 | S_PUB32 [size = 20] `main` 17CHECK-NEXT: flags = function, addr = 0001:0000 18CHECK-NEXT: 64 | S_PUB32 [size = 24] `exportfn1` 19CHECK-NEXT: flags = function, addr = 0001:0016 20CHECK-NEXT: 88 | S_PUB32 [size = 24] `exportfn2` 21CHECK-NEXT: flags = function, addr = 0001:0032 22CHECK-NEXT: 32 | S_PUB32 [size = 32] `__imp_exportfn2` 23CHECK-NEXT: flags = none, addr = 0002:0136 24CHECK-NEXT: 0 | S_PUB32 [size = 32] `__imp_exportfn1` 25CHECK-NEXT: flags = none, addr = 0002:0128 26 27CHECK: Section Contributions 28CHECK-NEXT: ============================================================ 29 main 30CHECK-NEXT: SC[.text] | mod = 0, 0001:0000, size = 8, data crc = 0, reloc crc = 0 31CHECK-NEXT: IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_EXECUTE | 32CHECK-NEXT: IMAGE_SCN_MEM_READ 33 exportfn1 thunk 34CHECK-NEXT: SC[.text] | mod = 1, 0001:0016, size = 6, data crc = 0, reloc crc = 0 35CHECK-NEXT: IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ 36 exportfn2 thunk 37CHECK-NEXT: SC[.text] | mod = 1, 0001:0032, size = 6, data crc = 0, reloc crc = 0 38CHECK-NEXT: IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ 39 .rdata debug directory data chunks 40CHECK-NEXT: SC[.rdata] | mod = 1, 0002:0000, size = 28, data crc = 0, reloc crc = 0 41CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ 42CHECK-NEXT: SC[.rdata] | mod = 1, 0002:0028, size = 33, data crc = 0, reloc crc = 0 43CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ 44