mirror of
https://github.com/intel/llvm.git
synced 2026-01-25 10:55:58 +08:00
In this patch, all symbols are resolved normally and then wrap options are applied. Renaming is implemented by mutating `Body` pointers of Symbols. (As a result, Symtab.find(SymbolName)->getName() may return a string that's different from SymbolName, but that is by design. I designed the symbol and the symbol table to allow this kind of operations.) http://reviews.llvm.org/D15896 llvm-svn: 257075
20 lines
602 B
ArmAsm
20 lines
602 B
ArmAsm
// REQUIRES: x86
|
|
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
|
|
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/wrap.s -o %t2
|
|
|
|
// RUN: ld.lld -o %t3 %t %t2 -wrap foo -wrap nosuchsym
|
|
// RUN: llvm-objdump -d -print-imm-hex %t3 | FileCheck %s
|
|
// RUN: ld.lld -o %t3 %t %t2 --wrap foo -wrap=nosuchsym
|
|
// RUN: llvm-objdump -d -print-imm-hex %t3 | FileCheck %s
|
|
|
|
// CHECK: _start:
|
|
// CHECK-NEXT: movl $0x11010, %edx
|
|
// CHECK-NEXT: movl $0x11010, %edx
|
|
// CHECK-NEXT: movl $0x11000, %edx
|
|
|
|
.global _start
|
|
_start:
|
|
movl $foo, %edx
|
|
movl $__wrap_foo, %edx
|
|
movl $__real_foo, %edx
|