aboutsummaryrefslogtreecommitdiff
path: root/test/COFF/delayimports32.test
blob: 328b34504ac5ff196eba05dfa644e29a109ce716 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# RUN: yaml2obj < %p/Inputs/hello32.yaml > %t.obj
# RUN: lld-link %t.obj %p/Inputs/std32.lib /subsystem:console \
# RUN:   /entry:main@0 /alternatename:___delayLoadHelper2@8=_main@0 \
# RUN:   /debug /delayload:std32.dll /out:%t.exe
# RUN: llvm-readobj -coff-imports %t.exe | FileCheck -check-prefix=IMPORT %s
# RUN: llvm-readobj -coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s
# RUN: llvm-objdump -d %t.exe | FileCheck -check-prefix=DISASM %s

IMPORT:      Format: COFF-i386
IMPORT-NEXT: Arch: i386
IMPORT-NEXT: AddressSize: 32bit
IMPORT-NEXT: DelayImport {
IMPORT-NEXT:   Name: std32.dll
IMPORT-NEXT:   Attributes: 0x1
IMPORT-NEXT:   ModuleHandle: 0x1018
IMPORT-NEXT:   ImportAddressTable: 0x1020
IMPORT-NEXT:   ImportNameTable: 0x3040
IMPORT-NEXT:   BoundDelayImportTable: 0x0
IMPORT-NEXT:   UnloadDelayImportTable: 0x0
IMPORT-NEXT:   Import {
IMPORT-NEXT:     Symbol: ExitProcess (0)
IMPORT-NEXT:     Address: 0x402029
IMPORT-NEXT:   }
IMPORT-NEXT:   Import {
IMPORT-NEXT:     Symbol: MessageBoxA (0)
IMPORT-NEXT:     Address: 0x40203E
IMPORT-NEXT:   }
IMPORT-NEXT: }

BASEREL:      BaseReloc [
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x1020
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x1024
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x2005
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x200C
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x201F
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x2025
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x202C
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x2031
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x2041
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x2046
BASEREL-NEXT:   }
BASEREL-NEXT: ]

DISASM:      202b:      68 20 10 40 00  pushl   $4198432
DISASM-NEXT: 2030:      68 00 30 40 00  pushl   $4206592
DISASM-NEXT: 2035:      e8 c6 ff ff ff  calll   -58 <_main@0>
DISASM-NEXT: 203a:      5a      popl    %edx
DISASM-NEXT: 203b:      59      popl    %ecx
DISASM-NEXT: 203c:      ff e0   jmpl    *%eax
DISASM-NEXT: 203e:      51      pushl   %ecx
DISASM-NEXT: 203f:      52      pushl   %edx
DISASM-NEXT: 2040:      68 24 10 40 00  pushl   $4198436
DISASM-NEXT: 2045:      68 00 30 40 00  pushl   $4206592
DISASM-NEXT: 204a:      e8 b1 ff ff ff  calll   -79 <_main@0>
DISASM-NEXT: 204f:      5a      popl    %edx
DISASM-NEXT: 2050:      59      popl    %ecx
DISASM-NEXT: 2051:      ff e0   jmpl    *%eax