Repository: rust
Issue: Compiler SIGSEGV when compiling inline asm in wasm32-wasi
Labels: I-crash,A-LLVM,C-bug,F-asm

<!--
Thank you for filing a bug report! 🐛 Please provide a short summary of the bug,
along with any information you feel relevant to replicating the bug.
-->

I tried this code:

```rust
use std::arch::asm;

fn main() {
    extern "C" fn call() {
        println!("CALL");
    }

    call();

    //println!("Start");
    unsafe {
        abc(call as usize);
    }
}

pub unsafe extern "C" fn abc(f: usize) {
    asm!(
    "local.get 0",
    "call_indirect (i32) -> ()",
    options(noreturn)
    )
}
```

### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->

`rustc --version --verbose`:
```
rustc 1.74.0-nightly (ca2b74f1a 2023-09-14)
binary: rustc
commit-hash: ca2b74f1ae5075d62e223c0a91574a1fc3f51c7c
commit-date: 2023-09-14
host: x86_64-unknown-linux-gnu
release: 1.74.0-nightly
LLVM version: 17.0.0
```

<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary>Backtrace</summary>
<p>

```
error: rustc interrupted by SIGSEGV, printing backtrace

/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x3194066)[0x7fea5bf94066]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7fea58a42520]
/lib/x86_64-linux-gnu/libc.so.6(+0x1a0e90)[0x7fea58ba0e90]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(+0x47e187a)[0x7fea557e187a]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(+0x47e70f7)[0x7fea557e70f7]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(+0x47e3b6f)[0x7fea557e3b6f]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(+0x47e14a7)[0x7fea557e14a7]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(_ZN4llvm16MCObjectStreamer10finishImplEv+0xdb)[0x7fea57822d5b]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(_ZN4llvm10AsmPrinter14doFinalizationERNS_6ModuleE+0x734)[0x7fea5767e804]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(_ZN4llvm13FPPassManager14doFinalizationERNS_6ModuleE+0x4a)[0x7fea576d278a]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libLLVM-17-rust-1.74.0-nightly.so(_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE+0x37b)[0x7fea573bde7b]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x264f386)[0x7fea5b44f386]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x264e238)[0x7fea5b44e238]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x264caec)[0x7fea5b44caec]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x2649a58)[0x7fea5b449a58]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x26493de)[0x7fea5b4493de]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x2647097)[0x7fea5b447097]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/librustc_driver-8e42d501a7efdfb9.so(+0x2646c76)[0x7fea5b446c76]
/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/libstd-19964a87984cce8a.so(rust_metadata_std_843b1ee06368cddb+0x10c075)[0x7fea58d71075]
/lib/x86_64-linux-gnu/libc.so.6(+0x94b43)[0x7fea58a94b43]
/lib/x86_64-linux-gnu/libc.so.6(+0x126a00)[0x7fea58b26a00]

note: we would appreciate a report at https://github.com/rust-lang/rust
error: could not compile `rstest` (bin "rstest")

Caused by:
  process didn't exit successfully: `/home/laolittle/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name rstest --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=202 --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=754798f590adad55 -C extra-filename=-754798f590adad55 --out-dir /home/laolittle/RustProjects/rstest/target/wasm32-wasi/debug/deps --target wasm32-wasi -C incremental=/home/laolittle/RustProjects/rstest/target/wasm32-wasi/debug/incremental -L dependency=/home/laolittle/RustProjects/rstest/target/wasm32-wasi/debug/deps -L dependency=/home/laolittle/RustProjects/rstest/target/debug/deps` (signal: 11, SIGSEGV: invalid memory reference)
```

</p>
</details>