summaryrefslogtreecommitdiff
path: root/test/passes/stack-check_enable-mutable-globals.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/stack-check_enable-mutable-globals.txt')
-rw-r--r--test/passes/stack-check_enable-mutable-globals.txt48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/passes/stack-check_enable-mutable-globals.txt b/test/passes/stack-check_enable-mutable-globals.txt
new file mode 100644
index 000000000..52ee091ef
--- /dev/null
+++ b/test/passes/stack-check_enable-mutable-globals.txt
@@ -0,0 +1,48 @@
+(module
+ (type $i32_=>_none (func (param i32)))
+ (type $i32_i32_=>_none (func (param i32 i32)))
+ (type $none_=>_i32 (func (result i32)))
+ (import "env" "__stack_pointer" (global $sp (mut i32)))
+ (global $__stack_base (mut i32) (i32.const 0))
+ (global $__stack_limit (mut i32) (i32.const 0))
+ (export "use_stack" (func $0))
+ (export "__set_stack_limit" (func $__set_stack_limit))
+ (export "__set_stack_limits" (func $__set_stack_limits))
+ (func $0 (result i32)
+ (local $0 i32)
+ (block
+ (if
+ (i32.or
+ (i32.gt_u
+ (local.tee $0
+ (i32.const 42)
+ )
+ (global.get $__stack_base)
+ )
+ (i32.lt_u
+ (local.get $0)
+ (global.get $__stack_limit)
+ )
+ )
+ (unreachable)
+ )
+ (global.set $sp
+ (local.get $0)
+ )
+ )
+ (global.get $sp)
+ )
+ (func $__set_stack_limit (param $0 i32)
+ (global.set $__stack_limit
+ (local.get $0)
+ )
+ )
+ (func $__set_stack_limits (param $0 i32) (param $1 i32)
+ (global.set $__stack_base
+ (local.get $0)
+ )
+ (global.set $__stack_limit
+ (local.get $1)
+ )
+ )
+)