rust-clippy icon indicating copy to clipboard operation
rust-clippy copied to clipboard

ICE in clippy::borrow_interior_mutable_const

Open saethlin opened this issue 8 months ago • 1 comments

Summary

#![deny(clippy::borrow_interior_mutable_const)]

use std::cell::UnsafeCell;

const ATOMIC_TUPLE: (Vec<UnsafeCell<u8>>, u8) = (Vec::new(), 42);

fn main() {
    let _x = &ATOMIC_TUPLE.0;
}

reports:

error: internal compiler error: /home/ben/rust/compiler/rustc_middle/src/ty/consts/valtree.rs:55:18: expected branch, got Leaf(0x0000000000000000)

thread 'rustc' panicked at /home/ben/rust/compiler/rustc_middle/src/ty/consts/valtree.rs:55:18:

The problem is this unwrap_branch: https://github.com/rust-lang/rust-clippy/blob/0ce07f61db8c9de51e6ecd38aa62eb3145417c0f/clippy_lints/src/non_copy_const.rs#L222-L223

Version

rustc 1.81.0-nightly (c1b336cb6 2024-06-21)
binary: rustc
commit-hash: c1b336cb6b491b3be02cd821774f03af4992f413
commit-date: 2024-06-21
host: x86_64-unknown-linux-gnu
release: 1.81.0-nightly
LLVM version: 18.1.7

Figuring out what's broken here is blocking https://github.com/rust-lang/rust/pull/126793

saethlin avatar Jun 22 '24 18:06 saethlin