[llvm] Do not replace dead constant references in metadata with undef
[llvm-project.git] / lld / test / ELF / linkerscript / map-file.test
blob6ec8bafc42b161e663767dbe1cef5666becab75a
1 # REQUIRES: x86
3 # RUN: echo '.quad sym3; .quad sym4; .section .foo.1, "a"; .quad 1' > %t.s
4 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %t.s -o %t.o
6 # RUN: ld.lld -o %t %t.o -Map=%t.map --script %s
7 # RUN: FileCheck -strict-whitespace %s < %t.map
9 SECTIONS {
10   . = 0x1000;
11   .foo : {
12     BYTE(0x11)
13     SHORT(0x1122)
14     LONG(0x11223344)
15     QUAD(0x1122334455667788)
16     PROVIDE_HIDDEN(sym4 = .);
17     . += 0x1000;
18     *(.foo.1)
19     PROVIDE(unused1 = 0xff);
20     HIDDEN(sym6 = .);
21     . += 0x123 *
22          (1 + 1);
23     foo = .;
24     bar = 0x42 - 0x26;
25   }
26   sym1 = .;
27   . += 0x500;
28   sym2 = .;
29   PROVIDE(unused2 = 0xff);
30   PROVIDE(sym3 = 42);
33 # CHECK:         VMA              LMA     Size Align Out     In      Symbol
34 # CHECK-NEXT:      0                0     1000     1 . = 0x1000
35 # CHECK-NEXT:   1000             1000     125d     1 .foo
36 # CHECK-NEXT:   1000             1000        1     1         BYTE ( 0x11 )
37 # CHECK-NEXT:   1001             1001        2     1         SHORT ( 0x1122 )
38 # CHECK-NEXT:   1003             1003        4     1         LONG ( 0x11223344 )
39 # CHECK-NEXT:   1007             1007        8     1         QUAD ( 0x1122334455667788 )
40 # CHECK-NEXT:   100f             100f        0     1         PROVIDE_HIDDEN ( sym4 = . )
41 # CHECK-NEXT:   100f             100f     1000     1         . += 0x1000
42 # CHECK-NEXT:   200f             200f        8     1         {{.*}}{{/|\\}}map-file.test.tmp.o:(.foo.1)
43 # CHECK-NEXT:   2017             2017        0     1         HIDDEN ( sym6 = . )
44 # CHECK-NEXT:   2017             2017      246     1         . += 0x123 * ( 1 + 1 )
45 # CHECK-NEXT:   225d             225d        0     1         foo = .
46 # CHECK-NEXT:   225d             225d        0     1         bar = 0x42 - 0x26
47 # CHECK-NEXT:   225d             225d        0     1 sym1 = .
48 # CHECK-NEXT:   225d             225d      500     1 . += 0x500
49 # CHECK-NEXT:   275d             275d        0     1 sym2 = .
50 # CHECK-NEXT:   275d             275d        0     1 PROVIDE ( sym3 = 42 )
51 # CHECK-NEXT:   2760             2760       10     4 .text
52 # CHECK-NEXT:   2760             2760       10     4         {{.*}}{{/|\\}}map-file.test.tmp.o:(.text)
53 # CHECK-NEXT:      0                0        8     1 .comment
54 # CHECK-NEXT:      0                0        8     1         <internal>:(.comment)
55 # CHECK-NEXT:      0                0       c0     8 .symtab
56 # CHECK-NEXT:      0                0       c0     8         <internal>:(.symtab)
57 # CHECK-NEXT:      0                0       2f     1 .shstrtab
58 # CHECK-NEXT:      0                0       2f     1         <internal>:(.shstrtab)
59 # CHECK-NEXT:      0                0       22     1 .strtab
60 # CHECK-NEXT:      0                0       22     1         <internal>:(.strtab)