Skip to content

rustc-LLVM ERROR: Cannot select: 0x11c366ee0: i32 = Constant<4096> #275

@astolarz

Description

@astolarz

The compiler doesn't like the use of the number 4096 in the piper crate. POC repo (more info in readme).

Code

pub fn write_buf(&mut self, max: usize) -> &mut [u8] {
        let n = max
            .min(self.zeroed_until * 2 + 4096) // Don't zero too many bytes when starting.
            .min(self.available_space()) // No more than space in the pipe.
            .min(self.inner.cap - self.inner.real_index(self.tail)); // Don't go past the buffer boundary.

Meta

rustc --version --verbose:

rustc 1.93.0-nightly (2b43689c5 2026-01-27) (1.93.0.0)
binary: rustc
commit-hash: 2b43689c53a55786249fe1d7263826eef2d74725
commit-date: 2026-01-27
host: aarch64-apple-darwin
release: 1.93.0-nightly
LLVM version: 20.1.1

Error output

rustc-LLVM ERROR: Cannot select: 0x11c366ee0: i32 = Constant<4096>
In function: _RNvMs7_CshefiTHCmSNc_5piperNtB5_6Writer9write_buf
error: could not compile `piper` (lib)
Backtrace

RUST_BACKTRACE=1 cargo build
   Compiling serde v1.0.228
   Compiling esp-idf-hal v0.46.2
   Compiling piper-cannot-select v0.1.0 (/Users/aaron/projects/rust/piper-cannot-select)
   Compiling piper v0.2.5
rustc-LLVM ERROR: Cannot select: 0x10aff6ee0: i32 = Constant<4096>
In function: _RNvMs7_CshefiTHCmSNc_5piperNtB5_6Writer9write_buf
error: could not compile `piper` (lib)

Caused by:
  process didn't exit successfully: `/Users/aaron/.rustup/toolchains/esp/bin/rustc --crate-name piper --edition=2018 /Users/aaron/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/piper-0.2.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=184 --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C debug-assertions=on --cfg 'feature="default"' --cfg 'feature="futures-io"' --cfg 'feature="std"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("default", "futures-io", "portable-atomic", "portable-atomic-util", "portable_atomic_crate", "std"))' -C metadata=ed420a438d4806d5 -C extra-filename=-0aeb95c8411ed1f8 --out-dir /Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps --target xtensa-esp32s3-espidf -C linker=ldproxy -L dependency=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps -L dependency=/Users/aaron/projects/rust/piper-cannot-select/target/debug/deps --extern 'noprelude:alloc=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/liballoc-30e5baa4b6d00e18.rmeta' --extern atomic_waker=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libatomic_waker-0fd68d7b767eec94.rmeta --extern 'noprelude:compiler_builtins=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libcompiler_builtins-47e625284373be4e.rmeta' --extern 'noprelude:core=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libcore-f59693a0f77c4fec.rmeta' --extern fastrand=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libfastrand-3fc7d4fc0af80850.rmeta --extern futures_io=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libfutures_io-84b9581e4e6da00a.rmeta --extern 'noprelude:panic_abort=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libpanic_abort-d4698a26ec923e56.rmeta' --extern 'noprelude:panic_unwind=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libpanic_unwind-ef249d08ea8e9b31.rmeta' --extern 'noprelude:proc_macro=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libproc_macro-17219ea72554725c.rmeta' --extern 'noprelude:std=/Users/aaron/projects/rust/piper-cannot-select/target/xtensa-esp32s3-espidf/debug/deps/libstd-0f3b1fc360180af2.rmeta' -Z unstable-options --cap-lints allow` (exit status: 101)
warning: build failed, waiting for other jobs to finish...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions