summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/lit/passes/post-emscripten.wast42
1 files changed, 32 insertions, 10 deletions
diff --git a/test/lit/passes/post-emscripten.wast b/test/lit/passes/post-emscripten.wast
index cce4b55a5..1369252a9 100644
--- a/test/lit/passes/post-emscripten.wast
+++ b/test/lit/passes/post-emscripten.wast
@@ -1,18 +1,27 @@
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
-;; RUN: wasm-opt %s --post-emscripten -S -o - | filecheck %s
+;; 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 2006))
- (global $em_js_start i32 (i32.const 2006))
- ;; CHECK: (global $em_js_stop i32 (i32.const 2015))
- (global $em_js_stop i32 (i32.const 2015))
+ ;; 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))
@@ -21,13 +30,12 @@
(global $foo_start i32 (i32.const 4000))
;; CHECK: (global $foo_stop i32 (i32.const 4015))
(global $foo_stop i32 (i32.const 4015))
- (memory 10 10)
- ;; CHECK: (memory $0 10 10)
-
+ ;; 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 (i32.const 2000) "hello \00\00\00\00\00\00\00\00\00 world")
- (data $data2 (i32.const 2000) "hello DELETE ME 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))
@@ -40,4 +48,18 @@
(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)
+ )
+ )
)