# 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 8 GLOBAL # CHECK-NEXT: 0 0 0 wasm_global # CHECK-NEXT: - 30 15 EXPORT # CHECK-NEXT: - 45 9 ELEM # CHECK-NEXT: - 4e 2d CODE # CHECK-NEXT: - 4f 10 {{.*}}{{/|\\}}map-file.s.tmp1.o:(bar) # CHECK-NEXT: - 4f 10 bar # CHECK-NEXT: - 5f b {{.*}}{{/|\\}}map-file.s.tmp1.o:(write_global) # CHECK-NEXT: - 5f b write_global # CHECK-NEXT: - 6a f {{.*}}{{/|\\}}map-file.s.tmp1.o:(_start) # CHECK-NEXT: - 6a f _start # CHECK-NEXT: - 7b 12 DATA # CHECK-NEXT: 10000 7c 8 .data # CHECK-NEXT: 10000 83 8 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.data.somedata) # CHECK-NEXT: 10000 83 8 somedata # CHECK-NEXT: 10008 7b 4 .bss # CHECK-NEXT: 10008 0 4 {{.*}}{{/|\\}}map-file.s.tmp1.o:(.bss.somezeroes) # CHECK-NEXT: 10008 0 4 somezeroes # CHECK-NEXT: - 8d 12 CUSTOM(.debug_info) # CHECK-NEXT: - 9f 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 /