forked from OSchip/llvm-project
49 lines
1.0 KiB
ArmAsm
49 lines
1.0 KiB
ArmAsm
|
# REQUIRES: x86
|
||
|
# RUN: llvm-mc %s -filetype=obj -triple=x86_64-windows-msvc -o %t.obj
|
||
|
# RUN: lld-link %t.obj -export:foo -export:bar -dll -noentry -out:%t.dll -merge:.xdata=.xdata -verbose 2>&1 | FileCheck %s
|
||
|
# RUN: llvm-readobj --sections %t.dll | FileCheck %s --check-prefix=XDATA
|
||
|
|
||
|
# Test xdata can be merged when text and pdata differ. This test is structured
|
||
|
# so that xdata comes after pdata, which makes xdata come before pdata in the
|
||
|
# assocChildren linked list.
|
||
|
|
||
|
# CHECK: ICF needed {{.*}} iterations
|
||
|
# CHECK: Selected
|
||
|
# CHECK: Removed
|
||
|
|
||
|
# XDATA: Name: .xdata
|
||
|
# XDATA-NEXT: VirtualSize: 0x4
|
||
|
|
||
|
.section .text,"xr",discard,foo
|
||
|
.globl foo
|
||
|
foo:
|
||
|
pushq %rax
|
||
|
popq %rax
|
||
|
retq
|
||
|
|
||
|
.section .pdata,"r",associative,foo
|
||
|
.long foo
|
||
|
.long 5
|
||
|
.long foo_xdata@IMGREL
|
||
|
|
||
|
|
||
|
.section .xdata,"r",associative,foo
|
||
|
foo_xdata:
|
||
|
.long 42
|
||
|
|
||
|
.section .text,"xr",discard,bar
|
||
|
.globl bar
|
||
|
bar:
|
||
|
pushq %rcx
|
||
|
popq %rcx
|
||
|
retq
|
||
|
|
||
|
.section .pdata,"r",associative,bar
|
||
|
.long bar
|
||
|
.long 5
|
||
|
.long bar_xdata@IMGREL
|
||
|
|
||
|
.section .xdata,"r",associative,bar
|
||
|
bar_xdata:
|
||
|
.long 42
|