[llvm] Do not replace dead constant references in metadata with undef
[llvm-project.git] / lld / test / ELF / linkerscript / sort-init.s
blob0a349fd9e57f3d12a173a1622762c01c3f55c502
1 # REQUIRES: x86
2 ## Test SORT_BY_INIT_PRIORITY can be used to convert .ctors into .init_array
4 # RUN: split-file %s %t
5 # RUN: llvm-mc -filetype=obj -triple=x86_64 %t/asm -o %t.o
6 # RUN: ld.lld -T %t/lds %t.o -o %t.out
7 # RUN: llvm-readelf -x .init_array %t.out | FileCheck %s
9 # CHECK: Hex dump of section '.init_array':
10 # CHECK-NEXT: 0x00000001 00010203 04050607
12 #--- asm
13 .globl _start
14 _start:
15 nop
17 .section foo, "aw", @init_array
18 .byte 5
20 .section .ctors.65435, "a"
21 .byte 3
22 .section .init_array.100, "aw", @init_array
23 .byte 4
25 .section .init_array.7, "aw", @init_array
26 .byte 2
27 .section .ctors.65529,"a"
28 .byte 1
29 .section .init_array.5, "aw", @init_array
30 .byte 0
32 .section .init_array, "aw", @init_array
33 .byte 6
34 .section .ctors, "a"
35 .byte 7
37 #--- lds
38 SECTIONS {
39 .init_array : {
40 *(SORT_BY_INIT_PRIORITY(.init_array.* .ctors.*) SORT_BY_INIT_PRIORITY(foo*))
41 *(.init_array .ctors)