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