[ELF] relocateNonAlloc: clean up workaround code
[llvm-project.git] / lld / test / COFF / icf-xdata.s
blob3adbc73d87e3eb207f09bcac6215ab6e663a4b9a
1 # REQUIRES: x86
2 # RUN: llvm-mc %s -triple x86_64-windows-msvc -filetype=obj -o %t.obj
3 # RUN: lld-link %t.obj -dll -noentry -out:%t.dll -merge:.xdata=.xdata 2>&1 \
4 # RUN: | FileCheck %s --check-prefix=WARN
5 # RUN: llvm-readobj --sections %t.dll | FileCheck %s --check-prefix=XDATA
6 # RUN: lld-link %t.obj -dll -noentry -out:%t.dll
7 # RUN: llvm-readobj --sections %t.dll | FileCheck %s --check-prefix=RDATA
9 # There shouldn't be much xdata, because all three .pdata entries (12 bytes
10 # each) should use the same .xdata unwind info.
11 # XDATA: Name: .rdata
12 # XDATA-NEXT: VirtualSize: 0x6F
13 # XDATA: Name: .pdata
14 # XDATA-NEXT: VirtualSize: 0x24
15 # XDATA: Name: .xdata
16 # XDATA-NEXT: VirtualSize: 0x8
18 # WARN: warning: .xdata=.rdata: already merged into .xdata
20 # RDATA: Name: .rdata
21 # RDATA-NEXT: VirtualSize: 0x78
22 # RDATA: Name: .pdata
23 # RDATA-NEXT: VirtualSize: 0x24
25 .text
26 callee:
27 ret
29 .def xdata1;
30 .scl 2;
31 .type 32;
32 .endef
33 .section .text,"xr",one_only,xdata1
34 .globl xdata1 # -- Begin function xdata1
35 .p2align 4, 0x90
36 xdata1: # @xdata1
37 .seh_proc xdata1
38 # BB#0: # %entry
39 subq $40, %rsp
40 .seh_stackalloc 40
41 .seh_endprologue
42 callq callee
43 nop
44 addq $40, %rsp
45 jmp callee # TAILCALL
46 .seh_handlerdata
47 .section .text,"xr",one_only,xdata1
48 .seh_endproc
49 # -- End function
50 .def xdata2;
51 .scl 2;
52 .type 32;
53 .endef
54 .section .text,"xr",one_only,xdata2
55 .globl xdata2 # -- Begin function xdata2
56 .p2align 4, 0x90
57 xdata2: # @xdata2
58 .seh_proc xdata2
59 # BB#0: # %entry
60 subq $40, %rsp
61 .seh_stackalloc 40
62 .seh_endprologue
63 callq callee
64 callq callee
65 nop
66 addq $40, %rsp
67 jmp callee # TAILCALL
68 .seh_handlerdata
69 .section .text,"xr",one_only,xdata2
70 .seh_endproc
71 # -- End function
72 .def xdata3;
73 .scl 2;
74 .type 32;
75 .endef
76 .section .text,"xr",one_only,xdata3
77 .globl xdata3 # -- Begin function xdata3
78 .p2align 4, 0x90
79 xdata3: # @xdata3
80 .seh_proc xdata3
81 # BB#0: # %entry
82 subq $40, %rsp
83 .seh_stackalloc 40
84 .seh_endprologue
85 callq callee
86 callq callee
87 callq callee
88 nop
89 addq $40, %rsp
90 jmp callee # TAILCALL
91 .seh_handlerdata
92 .section .text,"xr",one_only,xdata3
93 .seh_endproc
94 # -- End function
95 .section .drectve,"yn"
96 .ascii " -export:xdata1"
97 .ascii " -export:xdata2"
98 .ascii " -export:xdata3"