Kyrill Tkachov (ktkachov) <[email protected]>) commented on the code:
> +++ gcc/config/wasm/wasm-cg.cc
> @@ -0,0 +585,4 @@
> + return wasm_function_value (rtype, NULL_TREE, false);
> +}
> +
> +/* Implementation of TARGET_PASS_BY_REFERENCE. */
wasm_pass_by_reference passes every aggregate indirectly, while
wasm_return_in_memory returns ordinary records directly. The assembler
signature printer independently treats records as pointers. This produces
incompatible parameter/result types and can emit a result from a no-result
function.
Use one shared Basic C ABI classifier for argument lowering, return
lowering, and signature emission.
--
https://forge.sourceware.org/gcc/gcc-TEST/pulls/160#issuecomment-6593