rust-lang / rust-lang/rust

[ICE]: rustc-LLVM ERROR: Do not know how to split the result of this operator!

Open
#158,532 26 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-diagnostics A-LLVM C-bug I-ICE T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

View all comments

Code

Version of fontdue is 0.9.3, with default features. Target is x86_64-unknown-none.

#![cfg_attr(not(test), no_std)]
#![cfg_attr(not(test), no_main)]

use core::alloc::{GlobalAlloc, Layout};
#[cfg(not(test))]
use core::panic::PanicInfo;

struct Global;

unsafe impl GlobalAlloc for Global {
    unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
        todo!()
    }

    unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {
        todo!()
    }
}

#[global_allocator]
static GLOBAL: Global = Global;

#[cfg(not(test))]
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
    loop {}
}

fn main() {
    fontdue::Font::from_bytes([].as_slice(), fontdue::FontSettings::default()).unwrap();
}
Meta

rustc --version --verbose:

rustc 1.95.0 (59807616e 2026-04-14)
binary: rustc
commit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860
commit-date: 2026-04-14
host: aarch64-apple-darwin
release: 1.95.0
LLVM version: 22.1.2
Error output

When compiling fontdue, I get the error

 rustc-LLVM ERROR: Do not know how to split the result of this operator!
Backtrace

A backtrace isn't really doable here, since it errored from within LLVM. Correct me if there is a way

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the ICE with fontdue 0.9.3, the provided no_std example, and target x86_64-unknown-none using the reported rustc version. No source file or test entry point is named; done means identifying the compiler or LLVM failure and preventing this input from producing the fatal error.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.