<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/119717>119717</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Backport Wasm 64-bit table fix to 19.x
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
adambratschikaye
</td>
</tr>
</table>
<pre>
In `rustc`, the `wasm64-unknown-unknown` target produces invalid Wasm modules due to an issue with 64-bit tables that was fixed in https://github.com/llvm/llvm-project/pull/107780. Would it be possible to backport that fix to the 19.x release branch so that rust can pick it up?
Here are steps to reproduce the issue with cargo/rustc:
```
❯ rustc +nightly --version
rustc 1.85.0-nightly (a224f3807 2024-12-09)
❯ cargo new --bin foo
❯ cd foo
❯ cargo +nightly build -Z build-std=std,panic_abort --target wasm64-unknown-unknown
❯ wasm-objdump -j Elem -x target/wasm64-unknown-unknown/debug/foo.wasm | head
foo.wasm: file format wasm 0x1
module name: <foo-87b5668ca08bcff0.wasm>
Section Details:
Elem[1]:
- segment[0] flags=0 table=0 count=91 - init i64=94235877441537
- elem[94235877441537] = ref.func:3 <_ZN3foo4main17h3e4566f0ffb33d02E>
- elem[94235877441538] = ref.func:5 <_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17ha696e16b756653ccE>
```
Here we can see the init expression for the table is reading uninitialized memory.
cc @sbc100 @alexcrichton @lwshang
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVEuP4zYM_jXKhXCghx_xIYfMZIL20h56WGAvC0mmbe3IkiHJk0x_fSE76Q62O4cGgU2T1MeHyE_GaAaHeCTVE6nOO7mk0Yej7OSkgkxRj-ZVvuNO-e79-LsDUtOwxKRJTQl_hjRiVl1lnOqyWNyr81f3eJOaQpJhwARz8N2iMYJxb9KaDr7IOMHku8VihG5BSB6kAxPjgnA1aYS6LJRJkKTKLmmUCa4yQm9u2IFxMKY0RyJOhF8IvwwmjYvaaz8RfrH27fEq5uC_o06EX-bFWsIvjDbNge7hi19sByaBQph9jEbZNQsl9evsQ9pC9uaWlblO1u5vENCijAgqSKdHiH5zyz0BLR3MRr9m0GUm4kLoidDTbxgQZECICeeY0QLe-7HifqhZyzB4wi9bi0U-nRu9_emJvHDSnsnpssbTQPiTM8OY7DsUxRuGaLwj9LQZ2f5Q7WnxcCD8IDkve3GgDXDKy4LxgraEt1uWP7DXJMDhFYpCGQe99_9x6X6pXQ9-SEotxnZQfN2EIqaOiHN-8udZOqO_SZUbXRT3KflkjH4Kk70Kr753yzRD8R1eLE5Q3O6jRvjlExh-6VAtA-GX3vt9dgLSPMOIsttCPNREnGD79cYi9D5M2_BNQG-M0NM2t-DkhNmXiOfe--LQqKquD1rSg9J9T-9YLxv4X6iT8Q7OmKSx8X659JSzJ9UTI9V500EBEYcJXSLVEyXVGXorh0jEmW7LsEraLy4RcW4ZFGCcSWDqMn-XXFSHpilLVokmw0EBuMX4yVadgYgzBOz3_eLyuIlcyrevf4je-3KSxrFmFFhWdd3TvldCdJS_bBV9Bnv4BWx1hy21Dyj8HA_ZkLtRX9yfTmNJtbT2m3caCS-XRhFe_iu8rUXv42imVdc9jFlgzSjrtkZWq6aq60pofU_w496sG3jFdUEj3rcu9wxvc8CY1ybf8qpfo4GJEFB2xg2wuOxqpDV_YwcTTj6877e70xpISaPSjNIsSYs3HYwek3f5217jKN2w646ia0Urd3hkjSgpp23LduOx04wr0XOBJZeUlazStOmqqhHY6kocduaYN5VxxlnN24rtNa8PipaiZ4J2rFSkpDhJY_eZ6_Y-DLuVTY6MtQ1rdlYqtHHlds7zRq9Wwnmm-nBcCVItQ8y5mpjiD5hkksXj04MLV7r-yMgPYsykuFuCPf5vOl5TiZmQt1zfjvyfAAAA__8QFgpI">