;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. ;; RUN: wasm-opt %s --enable-bulk-memory --post-emscripten -S -o - | filecheck %s ;; Checks that the start/stop exports are removed and that the data they ;; refer to is either zero'd out, or the segment emptied. ;; Two of the segments used here are active, so their offsets are trivial ;; to dirive. One segment is passive and its offset is derived from the ;; memory.init instruction. ;; Explictly use a data address that is larger then INT_MAX to verify ;; that these offset are correctly interpreted as unsigned. (module ;; CHECK: (type $0 (func)) ;; CHECK: (global $em_asm_start i32 (i32.const 1000)) (global $em_asm_start i32 (i32.const 1000)) ;; CHECK: (global $em_asm_stop i32 (i32.const 1011)) (global $em_asm_stop i32 (i32.const 1011)) ;; CHECK: (global $em_js_start i32 (i32.const -1294967290)) (global $em_js_start i32 (i32.const 3000000006)) ;; CHECK: (global $em_js_stop i32 (i32.const -1294967281)) (global $em_js_stop i32 (i32.const 3000000015)) ;; CHECK: (global $em_lib_deps_start i32 (i32.const 3000)) (global $em_lib_deps_start i32 (i32.const 3000)) ;; CHECK: (global $em_lib_deps_stop i32 (i32.const 3009)) (global $em_lib_deps_stop i32 (i32.const 3009)) ;; CHECK: (global $foo_start i32 (i32.const 4000)) (global $foo_start i32 (i32.const 4000)) ;; CHECK: (global $foo_stop i32 (i32.const 4015)) (global $foo_stop i32 (i32.const 4015)) ;; CHECK: (memory $mem 10 10) (memory $mem 10 10) ;; CHECK: (data $data1 (i32.const 1000) "") (data $data1 (i32.const 1000) "hello world") ;; CHECK: (data $data2 "hello \00\00\00\00\00\00\00\00\00 world") (data $data2 "hello DELETE ME world") ;; CHECK: (data $data3 (i32.const 3000) "") (data $data3 (i32.const 3000) "some deps") (export "__start_em_asm" (global $em_asm_start)) (export "__stop_em_asm" (global $em_asm_stop)) (export "__start_em_js" (global $em_js_start)) (export "__stop_em_js" (global $em_js_stop)) (export "__start_em_lib_deps" (global $em_lib_deps_start)) (export "__stop_em_lib_deps" (global $em_lib_deps_stop)) ;; CHECK: (export "__start_foo" (global $foo_start)) (export "__start_foo" (global $foo_start)) ;; CHECK: (export "__stop_foo" (global $foo_stop)) (export "__stop_foo" (global $foo_stop)) ;; CHECK: (func $meminit ;; CHECK-NEXT: (memory.init $data2 ;; CHECK-NEXT: (i32.const -1294967296) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: (i32.const 21) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $meminit (memory.init $mem $data2 (i32.const 3000000000) (i32.const 0) (i32.const 21) ) ) )