1# REQUIRES: x86
2
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
5
6# RUN: ld.lld -o %t %t.o -Map=%t.map --script %s
7# RUN: FileCheck -strict-whitespace %s < %t.map
8
9SECTIONS {
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);
31}
32
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)
61