[llvm] Do not replace dead constant references in metadata with undef
[llvm-project.git] / lld / test / ELF / merge-entsize2.s
blob25036beeea8e83d2b7eaafab09621e52ed317255
1 # REQUIRES: x86
2 # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
4 # RUN: ld.lld %t.o -o %t
5 # RUN: llvm-readelf -S %t | FileCheck --check-prefix=SEC %s
6 # RUN: llvm-readelf -x .cst %t | FileCheck --check-prefix=HEX %s
8 # RUN: ld.lld -O0 -r %t.o -o %t1.o
9 # RUN: llvm-readelf -S %t1.o | FileCheck --check-prefix=SEC %s
10 # RUN: llvm-readelf -x .cst %t1.o | FileCheck --check-prefix=HEX %s
12 ## Check that SHF_MERGE sections with the same name, sh_flags and sh_entsize
13 ## are grouped together and can be merged within the group.
15 ## .cst 0 and .cst 1 are merged (sh_entsize=4). The result and .cst 2 and
16 ## combined (sh_entsize=8). The output sh_entsize is 0.
17 # SEC: Name Type {{.*}} Size ES Flg Lk Inf Al
18 # SEC: .cst PROGBITS {{.*}} 000020 00 AM 0 0 8
20 # HEX: Hex dump of section '.cst':
21 # HEX-NEXT: 0x{{[0-9a-f]+}} 01000000 00000000 02000000 00000000
22 # HEX-NEXT: 0x{{[0-9a-f]+}} 01000000 00000000 03000000 00000000
24 .section .cst,"aM",@progbits,4,unique,0
25 .align 2
26 .long 1
27 .long 0
28 .long 2
30 .section .cst,"aM",@progbits,4,unique,1
31 .align 4
32 .long 1
33 .long 0
34 .long 2
36 .section .cst,"aM",@progbits,8,unique,2
37 .align 8
38 .quad 1
39 .quad 3