Files
wasm-instrument/tests/expectations/stack-height/many_locals.wat
T
Sergey Shulepov 19760b5835 Fix counting of the local variables
The code assumed that the number of `Local` and number of locals is the
same thing. In reality though it is not. `Local` actually represents a
group of locals with the same type. The group can declare more than one
variable and the number of them is returned by `Local::count`.

In this PR we acknowledge this fact. Along the way we add a checked
arithmetic for locals_count and max_stack_height summation.
2021-06-09 19:22:40 +02:00

22 lines
376 B
WebAssembly Text Format

(module
(type (;0;) (func))
(func (;0;) (type 0)
(local i64 i64 i32))
(func (;1;) (type 0)
global.get 0
i32.const 3
i32.add
global.set 0
global.get 0
i32.const 1024
i32.gt_u
if ;; label = @1
unreachable
end
call 0
global.get 0
i32.const 3
i32.sub
global.set 0)
(global (;0;) (mut i32) (i32.const 0)))