Skip to content

ICE with the image crate #100246

Closed
Closed

Description

Code

fn load_get<A>() -> Result<&'static A, ()> {
    unimplemented!()
}

fn main() -> Result<(), ()> {
    let image: image::ImageBuffer<image::Rgba<u8>, Vec<u8>> = load_get()?;
    Ok(())
}

Meta

rustc --version --verbose:

❯ rustc --version --verbose
rustc 1.62.1 (e092d0b6b 2022-07-16)
binary: rustc
commit-hash: e092d0b6b43f2de967af0887873151bb1c0b18d3
commit-date: 2022-07-16
host: aarch64-apple-darwin
release: 1.62.1
LLVM version: 14.0.5

Error output

error[E0275]: overflow evaluating the requirement `&num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<num_rational::Ratio<_>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>: num_traits::pow::Pow<&u128>`
 --> src/main.rs:6:63
  |
6 |     let image: image::ImageBuffer<image::Rgba<u8>, Vec<u8>> = load_get()?;
  |                                                               ^^^^^^^^^^^
  |
  = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`tester`)

and then if I increase the recursion limit enough...

process didn't exit successfully: `rustc --crate-name tester --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=e9955c5db8fba40f -C extra-filename=-e9955c5db8fba40f --out-dir /Users/jjspira/Documents/Rust/tester/target/debug/deps -C incremental=/Users/jjspira/Documents/Rust/tester/target/debug/incremental -L dependency=/Users/jjspira/Documents/Rust/tester/target/debug/deps --extern image=/Users/jjspira/Documents/Rust/tester/target/debug/deps/libimage-1ae40fb2a0984fba.rlib` (signal: 10, SIGBUS: access to undefined memory)

adding a backtrace gives nothing new, however, compiling on nightly gives the following:

❯ cargo +nightly run
   Compiling tester v0.1.0 (/Users/jjspira/Documents/Rust/tester)

thread 'rustc' has overflowed its stack
fatal runtime error: stack overflow
error: could not compile `tester`

Caused by:
  process didn't exit successfully: `rustc --crate-name tester --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 -C metadata=e5c31fefbe1f1d2f -C extra-filename=-e5c31fefbe1f1d2f --out-dir /Users/jjspira/Documents/Rust/tester/target/debug/deps -C incremental=/Users/jjspira/Documents/Rust/tester/target/debug/incremental -L dependency=/Users/jjspira/Documents/Rust/tester/target/debug/deps --extern image=/Users/jjspira/Documents/Rust/tester/target/debug/deps/libimage-0281d5d432728bf8.rlib` (signal: 6, SIGABRT: process abort signal)

I strongly suspect this is related to #89275, but that issue is now old and should have been solved. Perhaps a regression?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions