Closed
Description
Code
Code is minimized as much as possible and here is a demo repository: https://github.com/StackOverflowExcept1on/wasm-builder-regression/
wasm-checker
- simple CLI tool that passes wasm to parity-wasm parser (it does not support reference-types)wasm-program
- this is smart contract that panics and terminates with an errorwasm-project
- some intermediate directory that is generated by our utility- check.sh source code
git clone https://github.com/StackOverflowExcept1on/wasm-builder-regression.git
cd wasm-builder-regression/wasm-project
./check.sh
Finished `release` profile [optimized] target(s) in 8.30s
Compiling gear-wasm v0.45.1
Compiling wasm-checker v0.1.0 (/mnt/tmpfs/wasm-builder-regression/wasm-checker)
Finished `release` profile [optimized] target(s) in 1.68s
Running `/mnt/tmpfs/wasm-builder-regression/wasm-checker/target/release/wasm-checker ./target/wasm32-unknown-unknown/release/wasm_program.wasm`
Error: InvalidTableReference(128)
If I remove flag -C linker-plugin-lto
, it works as described in #128511
I expected to see this happen: I can disable reference-types
via -Ctarget-cpu=mvp
and -Zbuild-std
Instead, this happened: there is some kind of conflict between compiler flags?
Version it worked on
It most recently worked on: nightly-2024-07-31
Version with regression
rustc +nightly-2024-08-01 --version --verbose
:
rustc 1.82.0-nightly (28a58f2fa 2024-07-31)
binary: rustc
commit-hash: 28a58f2fa7f0c46b8fab8237c02471a915924fe5
commit-date: 2024-07-31
host: x86_64-unknown-linux-gnu
release: 1.82.0-nightly
LLVM version: 19.1.0