summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2021-08-02 12:06:51 -0400
committerGitHub <noreply@github.com>2021-08-02 09:06:51 -0700
commit7835f7d4d4d2d0118ba40b9f60fb32de8a43c272 (patch)
treed9f8afe0dacc3887a440870280d2a388de0c91b6 /src
parentf35f02c1ce1b3129aa83d2dddeababd414c1ca8f (diff)
downloadbinaryen-7835f7d4d4d2d0118ba40b9f60fb32de8a43c272.tar.gz
binaryen-7835f7d4d4d2d0118ba40b9f60fb32de8a43c272.tar.bz2
binaryen-7835f7d4d4d2d0118ba40b9f60fb32de8a43c272.zip
Test GC lit tests with --nominal as well (#4043)
Add a new run line to every list test containing a struct type to run the test again with nominal typing. In cases where tests do not use any struct subtyping, this does not change the test output. In cases where struct subtyping is used, a new check prefix is introduced to capture the difference that `(extends ...)` clauses are emitted in nominal mode but not in equirecursive mode. There are no other test differences. Some tests are cleaned up along the way. Notably, O_all-features{,-ignore-implicit-traps}.wast is consolidated to a single file.
Diffstat (limited to 'src')
-rw-r--r--src/ir/module-utils.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ir/module-utils.h b/src/ir/module-utils.h
index 2cbab414b..d916f51a2 100644
--- a/src/ir/module-utils.h
+++ b/src/ir/module-utils.h
@@ -569,8 +569,12 @@ inline void collectHeapTypes(Module& wasm,
if (ht.getSuperType(super)) {
if (!counts.count(super)) {
newTypes.insert(super);
+ // We should unconditionally count supertypes, but while the type system
+ // is in flux, skip counting them to keep the type orderings in nominal
+ // test outputs more similar to the orderings in the equirecursive
+ // outputs. FIXME
+ counts.note(super);
}
- counts.note(super);
}
}