Skip to content

SIGSEGV during compilation with large array #129157

@worldofjoni

Description

@worldofjoni

I tried this code:

fn main() {
    criterion::black_box([0; 1 << 18]);
}

I expected to see this happen:
A sensible error message or successful compilation.
Appears on Linux as well as Windows, also on nightly.

Instead, this happened:
Compilation fails with the following error:

error: rustc interrupted by SIGSEGV, printing backtrace

error: could not compile `bug` (bin "bug")

Caused by:
  process didn't exit successfully: `/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc --crate-name bug --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=313 --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=6532b579df22cc76 -C extra-filename=-6532b579df22cc76 --out-dir /mnt/c/Users/.../bug/target/debug/deps -C incremental=/mnt/c/Users/.../bug/target/debug/incremental -L dependency=/mnt/c/Users/.../bug/target/debug/deps --extern criterion=/mnt/c/Users/.../bug/target/debug/deps/libcriterion-3471465a5b6149f0.rlib` (signal: 11, SIGSEGV: invalid memory reference)

Meta

rustc --version --verbose:

rustc 1.80.1 (3f5fd8dd4 2024-08-06)
binary: rustc
commit-hash: 3f5fd8dd41153bc5fdca9427e9e05be2c767ba23
commit-date: 2024-08-06
host: x86_64-unknown-linux-gnu
release: 1.80.1
LLVM version: 18.1.7
Backtrace

/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-a30ca400d2857f33.so(+0x3031f56)[0x7fa09b431f56]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7fa098219520]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm12SelectionDAG18ReplaceAllUsesWithEPNS_6SDNodeEPKNS_7SDValueE+0x1fa)[0x7fa0967e833a]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(+0x602bffa)[0x7fa096a2bffa]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm12SelectionDAG7CombineENS_12CombineLevelEPNS_9AAResultsENS_15CodeGenOptLevelE+0x155e)[0x7fa096753d68]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm16SelectionDAGISel17CodeGenAndEmitDAGEv+0x74)[0x7fa0967585b4]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm16SelectionDAGISel20SelectAllBasicBlocksERKNS_8FunctionE+0x14a6)[0x7fa096774302]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm16SelectionDAGISel20runOnMachineFunctionERNS_15MachineFunctionE+0x83a)[0x7fa09670ce3a]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(+0x5d0c5ed)[0x7fa09670c5ed]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE+0xad4)[0x7fa0967131d4]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE+0x2f)[0x7fa096712645]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libLLVM.so.18.1-rust-1.80.1-stable(_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE+0x260)[0x7fa096c764e0]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-a30ca400d2857f33.so(LLVMRustWriteOutputFile+0x190)[0x7fa09d44bb18]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-a30ca400d2857f33.so(+0x504b756)[0x7fa09d44b756]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-a30ca400d2857f33.so(+0x5048bf1)[0x7fa09d448bf1]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-a30ca400d2857f33.so(+0x5048897)[0x7fa09d448897]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-a30ca400d2857f33.so(+0x504497b)[0x7fa09d44497b]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/librustc_driver-a30ca400d2857f33.so(+0x504445b)[0x7fa09d44445b]
/home/.../.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/libstd-52417a9a08ba8fb9.so(rust_metadata_std_fba9fafec3bdacf8+0xc3e3b)[0x7fa09e94be3b]
/lib/x86_64-linux-gnu/libc.so.6(+0x94ac3)[0x7fa09826bac3]
/lib/x86_64-linux-gnu/libc.so.6(+0x126850)[0x7fa0982fd850]

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions