50 lines · plain
1// REQUIRES: x862// RUN: split-file %s %t.dir3// RUN: llvm-mc -filetype=obj -triple=i686-win32-gnu %t.dir/main.s -o %t.main.obj4// RUN: llvm-mc -filetype=obj -triple=i686-win32-gnu %t.dir/other.s -o %t.other.obj5 6// RUN: lld-link -out:%t.exe %t.main.obj %t.other.obj -entry:entry -subsystem:console -debug:symtab -safeseh:no -wrap:foo -wrap:nosuchsym7// RUN: llvm-objdump -d --print-imm-hex %t.exe | FileCheck %s8 9// CHECK: <_entry>:10// CHECK-NEXT: movl $0x11010, %edx11// CHECK-NEXT: movl $0x11010, %edx12// CHECK-NEXT: movl $0x11000, %edx13 14// RUN: llvm-readobj --symbols %t.exe > %t.dump15// RUN: FileCheck --check-prefix=SYM1 %s < %t.dump16// RUN: FileCheck --check-prefix=SYM2 %s < %t.dump17// RUN: FileCheck --check-prefix=SYM3 %s < %t.dump18 19// _foo = 0x00011000 = 6963220// ___wrap_foo = 0x00011010 = 6964821// SYM1: Name: _foo22// SYM1-NEXT: Value: 6963223// SYM1-NEXT: Section: IMAGE_SYM_ABSOLUTE24// SYM1-NEXT: BaseType: Null25// SYM1-NEXT: ComplexType: Null26// SYM1-NEXT: StorageClass: External27// SYM2: Name: ___wrap_foo28// SYM2-NEXT: Value: 6964829// SYM2-NEXT: Section: IMAGE_SYM_ABSOLUTE30// SYM2-NEXT: BaseType: Null31// SYM2-NEXT: ComplexType: Null32// SYM2-NEXT: StorageClass: External33// SYM3-NOT: Name: ___real_foo34 35#--- main.s36.global _entry37_entry:38 movl $_foo, %edx39 movl $___wrap_foo, %edx40 movl $___real_foo, %edx41 42#--- other.s43.global _foo44.global ___wrap_foo45.global ___real_foo46 47_foo = 0x1100048___wrap_foo = 0x1101049___real_foo = 0x1102050