Closed nagisa closed 1 year ago
Darn, this is due to the hack necessary to parse the optional result signature. In fact, call_indirect has the same problem, none of the following work:
(func select select)
(func select call_indirect)
(func call_indirect select)
(func call_indirect call_indirect)
It works if you add another instruction at the end.
Unfortunately, the fix is rather non-obvious, it is easy to get shift/reduce conflicts here. Will have a look.
Please see #1567.
is a different, but equivalent, way to write https://github.com/WebAssembly/spec/blob/937fc7d63efb9e18f36334a9e761a8a040ac44b7/test/core/select.wast#L47-L49
but it fails to parse with the following error when fed to the reference interpreter
If we parenthesize the last select, the parse succeeds. This appears to be the only such function in the spec-test suite where such an equivalent rewrite fails to parse in the test suite, as far as I can tell.