blob: 1aae7a7aa2bd0fec0b00bcb107b68cab708baf76 [file] [log] [blame]
# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t1.o
# RUN: wasm-ld %t1.o -o %t -M | FileCheck --match-full-lines --strict-whitespace %s
# RUN: wasm-ld %t1.o -o %t -print-map | FileCheck --match-full-lines --strict-whitespace %s
# RUN: wasm-ld %t1.o -o %t -Map=%t.map
# RUN: FileCheck --match-full-lines --strict-whitespace %s < %t.map
.globaltype wasm_global, i32, immutable
wasm_global:
bar:
.functype bar () -> (i32)
i32.const somedata
i32.const somezeroes
drop
end_function
write_global:
.functype write_global (i32) -> ()
local.get 0
global.set wasm_global
end_function
.globl _start
_start:
.functype _start () -> ()
call bar
call write_global
end_function
.section .data.somedata,"",@
somedata:
.int32 123
.int32 bar
.size somedata, 8
.section .bss.somezeroes,"",@
somezeroes:
.int32 0
.size somezeroes, 4
.section .debug_info,"",@
.int32 bar
# CHECK: Addr Off Size Out In Symbol
# CHECK-NEXT: - 8 e TYPE
# CHECK-NEXT: - 16 6 FUNCTION
# CHECK-NEXT: - 1c 7 TABLE
# CHECK-NEXT: - 23 5 MEMORY
# CHECK-NEXT: - 28 f GLOBAL
# CHECK-NEXT: 0 0 0 __stack_pointer
# CHECK-NEXT: 1 0 0 wasm_global
# CHECK-NEXT: - 37 15 EXPORT
# CHECK-NEXT: - 4c 9 ELEM
# CHECK-NEXT: - 55 2d CODE
# CHECK-NEXT: - 56 10 {{.*}}{{/|\\}}map-file.s.tmp1.o:(bar)
# CHECK-NEXT: - 56 10 bar
# CHECK-NEXT: - 66 b {{.*}}{{/|\\}}map-file.s.tmp1.o:(write_global)
# CHECK-NEXT: - 66 b write_global
# CHECK-NEXT: - 71 f {{.*}}{{/|\\}}map-file.s.tmp1.o:(_start)
# CHECK-NEXT: - 71 f _start
# CHECK-NEXT: - 82 11 DATA
# CHECK-NEXT: 400 83 8 .data
# CHECK-NEXT: 400 89 8 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.data.somedata)
# CHECK-NEXT: 400 89 8 somedata
# CHECK-NEXT: 408 82 4 .bss
# CHECK-NEXT: 408 0 4 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.bss.somezeroes)
# CHECK-NEXT: 408 0 4 somezeroes
# CHECK-NEXT: - 93 12 CUSTOM(.debug_info)
# CHECK-NEXT: - a5 50 CUSTOM(name)
# RUN: not wasm-ld %t1.o -o /dev/null -Map=/ 2>&1 \
# RUN: | FileCheck -check-prefix=FAIL %s
# FAIL: wasm-ld: error: cannot open map file /