diff options
author | Alon Zakai <azakai@google.com> | 2022-01-11 14:16:34 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-11 14:16:34 -0800 |
commit | b63fea1feefce42be49fa28fd85d01d4a52603a2 (patch) | |
tree | 541a37da001dda677bdd9288897587a0de908ac1 /test/ctor-eval/memory-init.wast | |
parent | cc36ffd13f6794cc5212a1f0ba7f58e816e8a0de (diff) | |
download | binaryen-b63fea1feefce42be49fa28fd85d01d4a52603a2.tar.gz binaryen-b63fea1feefce42be49fa28fd85d01d4a52603a2.tar.bz2 binaryen-b63fea1feefce42be49fa28fd85d01d4a52603a2.zip |
[ctor-eval] Stop if there are any memory.init instructions (#4442)
This tool depends (atm) on flattening memory segments. That is not compatible
with memory.init which cares about segment identities.
This changes flatten() only by adding the check for MemoryInit. The rest is
unchanged, although I saw the other two params are not needed and I removed
them while I was there.
Diffstat (limited to 'test/ctor-eval/memory-init.wast')
-rw-r--r-- | test/ctor-eval/memory-init.wast | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/ctor-eval/memory-init.wast b/test/ctor-eval/memory-init.wast new file mode 100644 index 000000000..b910aa2f3 --- /dev/null +++ b/test/ctor-eval/memory-init.wast @@ -0,0 +1,22 @@ +(module + (memory $0 1) + (data (i32.const 0) "__________") + (data (i32.const 20) "__________") + (func "test1" + ;; A store that can be evalled. + (i32.store8 + (i32.const 4) + (i32.const 100) + ) + + ;; A memory init cannot be evalled since ctor-eval flattens memory segments + ;; atm. We lose the identity of them as a result as they are all merged + ;; into a single big segment. We could fix that eventually. + (memory.init 1 + (i32.const 0) + (i32.const 0) + (i32.const 1) + ) + ) +) + |