summaryrefslogtreecommitdiff
path: root/test/example/c-api-kitchen-sink.c
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2020-09-11 03:04:17 +0200
committerGitHub <noreply@github.com>2020-09-10 18:04:17 -0700
commit192757772adce7568fc1f3f3e733a4263b6392c6 (patch)
tree922fec8709cf9008d239a1fcbce7280e6ab46deb /test/example/c-api-kitchen-sink.c
parentcd6f0d908f0e4c68d72fd476a6e0e7cfb7ae8595 (diff)
downloadbinaryen-192757772adce7568fc1f3f3e733a4263b6392c6.tar.gz
binaryen-192757772adce7568fc1f3f3e733a4263b6392c6.tar.bz2
binaryen-192757772adce7568fc1f3f3e733a4263b6392c6.zip
Add anyref feature and type (#3109)
Adds `anyref` type, which is enabled by a new feature `--enable-anyref`. This type is primarily used for testing that passes correctly handle subtype relationships so that the codebase will continue to be prepared for future subtyping. Since `--enable-anyref` is meaningless without also using `--enable-reference-types`, this PR also makes it a validation error to pass only the former (and similarly makes it a validation error to enable exception handling without enabling reference types).
Diffstat (limited to 'test/example/c-api-kitchen-sink.c')
-rw-r--r--test/example/c-api-kitchen-sink.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index b0a3ad302..e242cfc8e 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -211,6 +211,12 @@ void test_types() {
BinaryenTypeExpand(exnref, &valueType);
assert(valueType == exnref);
+ BinaryenType anyref = BinaryenTypeAnyref();
+ printf(" // BinaryenTypeAnyref: %d\n", anyref);
+ assert(BinaryenTypeArity(anyref) == 1);
+ BinaryenTypeExpand(anyref, &valueType);
+ assert(valueType == anyref);
+
printf(" // BinaryenTypeAuto: %d\n", BinaryenTypeAuto());
BinaryenType pair[] = {i32, i32};
@@ -241,6 +247,7 @@ void test_features() {
printf("BinaryenFeatureTailCall: %d\n", BinaryenFeatureTailCall());
printf("BinaryenFeatureReferenceTypes: %d\n", BinaryenFeatureReferenceTypes());
printf("BinaryenFeatureMultivalue: %d\n", BinaryenFeatureMultivalue());
+ printf("BinaryenFeatureAnyref: %d\n", BinaryenFeatureAnyref());
printf("BinaryenFeatureAll: %d\n", BinaryenFeatureAll());
}