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.
This commit is contained in:
Sergey Shulepov
2021-06-09 19:22:40 +02:00
parent d891cddcb3
commit 19760b5835
4 changed files with 41 additions and 2 deletions
+10
View File
@@ -0,0 +1,10 @@
(module
(func $one-group-many-locals
(local i64) (local i64) (local i32)
)
(func $main
(call
$one-group-many-locals
)
)
)