summaryrefslogtreecommitdiff
path: root/test/ctor-eval/memory-init.wast
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2022-01-11 14:16:34 -0800
committerGitHub <noreply@github.com>2022-01-11 14:16:34 -0800
commitb63fea1feefce42be49fa28fd85d01d4a52603a2 (patch)
tree541a37da001dda677bdd9288897587a0de908ac1 /test/ctor-eval/memory-init.wast
parentcc36ffd13f6794cc5212a1f0ba7f58e816e8a0de (diff)
downloadbinaryen-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.wast22
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)
+ )
+ )
+)
+