blob: 74e6d2f04ab07814c43f2833659b89eea03953dd [file] [edit]
# REQUIRES: x86
## Test dynamic debugging `-trace-symbol=<symbol>`
# RUN: rm -rf %t && split-file %s %t && cd %t
# RUN: llvm-mc -filetype=obj -triple=x86_64 foo.s -o foo.o
# RUN: llvm-mc -filetype=obj -triple=x86_64 bar.s -o bar.o
# RUN: llvm-mc -filetype=obj -triple=x86_64 bar-unopt.s -o bar-unopt.o
## Create dynamic debugging style object.
# RUN: llvm-objcopy --add-section=.debug_llvm_dyndbg=bar-unopt.o bar.o
# RUN: llvm-objcopy --set-section-type=.debug_llvm_dyndbg=0x6fff4c10 \
# RUN: --set-section-alignment=.debug_llvm_dyndbg=8 bar.o
# RUN: ld.lld -trace-symbol=foo -shared foo.o bar.o | FileCheck %s
# CHECK: foo.o: definition of foo
# CHECK-NEXT: bar.o: reference to foo
# CHECK-NEXT: bar.o: dynamic debugging reference to foo
#--- foo.s
.globl foo
.type foo,@function
foo:
ret
#--- bar.s
.globl bar
.type bar,@function
bar:
ret
#--- bar-unopt.s
.globl __dyndbg.baz
.hidden __dyndbg.baz
.type __dyndbg.baz,@function
__dyndbg.baz:
call foo
ret