# RUN: rm -rf %t && mkdir -p %t
# RUN: llvm-mc -triple x86_64-pc-linux-gnu -filetype=obj \
# RUN: -o %t/ELF_weak_defs_extra.o %S/Inputs/ELF_weak_defs_extra.s
# RUN: llvm-mc -triple x86_64-pc-linux-gnu -filetype=obj \
# RUN: -o %t/ELF_weak_definitions.o %s
# RUN: llvm-jitlink -noexec -check=%s %t/ELF_weak_definitions.o \
# RUN: %t/ELF_weak_defs_extra.o
#
# Check that objects linked separately agree on the address of weak symbols.
#
# jitlink-check: *{8}WeakDefAddrInThisFile = *{8}WeakDefAddrInExtraFile
.text
.file "ELF_weak_definitions.c"
.globl main
.p2align 4, 0x90
.type main,@function
main:
movq WeakDef@GOTPCREL(%rip), %rax
movl (%rax), %eax
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
.type WeakDef,@object
.data
.weak WeakDef
.p2align 2
WeakDef:
.long 1
.size WeakDef, 4
.type WeakDefAddrInThisFile,@object
.globl WeakDefAddrInThisFile
.p2align 3
WeakDefAddrInThisFile:
.quad WeakDef
.size WeakDefAddrInThisFile, 8
.type extra_file_anchor,@object
.globl extra_file_anchor
.p2align 3
extra_file_anchor:
.quad WeakDefAddrInExtraFile
.size extra_file_anchor, 8
.ident "clang version 10.0.0-4ubuntu1 "
.section ".note.GNU-stack","",@progbits
.addrsig
.addrsig_sym WeakDef
.addrsig_sym WeakDefAddrInExtraFile