reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    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
# REQUIRES: x86
# RUN: yaml2obj < %p/Inputs/hello32.yaml > %t.obj
# RUN: lld-link -safeseh:no %t.obj %p/Inputs/std32.lib /subsystem:console \
# RUN:   /entry:main@0 /alternatename:___delayLoadHelper2@8=_main@0 \
# RUN:   /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: 0x3018
IMPORT-NEXT:   ImportAddressTable: 0x3020
IMPORT-NEXT:   ImportNameTable: 0x2040
IMPORT-NEXT:   BoundDelayImportTable: 0x0
IMPORT-NEXT:   UnloadDelayImportTable: 0x0
IMPORT-NEXT:   Import {
IMPORT-NEXT:     Symbol: ExitProcess (0)
IMPORT-NEXT:     Address: 0x401029
IMPORT-NEXT:   }
IMPORT-NEXT:   Import {
IMPORT-NEXT:     Symbol: MessageBoxA (0)
IMPORT-NEXT:     Address: 0x401033
IMPORT-NEXT:   }
IMPORT-NEXT: }

BASEREL:      BaseReloc [
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x1005
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x100C
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x101F
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x1025
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x102A
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x1034
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x1041
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: ABSOLUTE
BASEREL-NEXT:     Address: 0x1000
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x3020
BASEREL-NEXT:   }
BASEREL-NEXT:   Entry {
BASEREL-NEXT:     Type: HIGHLOW
BASEREL-NEXT:     Address: 0x3024
BASEREL-NEXT:   }
BASEREL-NEXT: ]

DISASM:      1029:      b8 20 30 40 00  movl    $4206624, %eax
DISASM-NEXT: 102e:      e9 0a 00 00 00  jmp     10 <.text+0x3d>
DISASM-NEXT: 1033:      b8 24 30 40 00  movl    $4206628, %eax
DISASM-NEXT: 1038:      e9 00 00 00 00  jmp     0 <.text+0x3d>
DISASM-NEXT: 103d:      51      pushl   %ecx
DISASM-NEXT: 103e:      52      pushl   %edx
DISASM-NEXT: 103f:      50      pushl   %eax
DISASM-NEXT: 1040:      68 00 20 40 00  pushl   $4202496
DISASM-NEXT: 1045:      e8 b6 ff ff ff  calll   -74 <.text>
DISASM-NEXT: 104a:      5a      popl    %edx
DISASM-NEXT: 104b:      59      popl    %ecx
DISASM-NEXT: 104c:      ff e0   jmpl    *%eax