-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICE: build cache corruption #49663
Comments
Do you have a generated Wayland_c_interfaces.rs at hand? If not I'll have a look tomorrow |
triage: P-high Regression, @oli-obk is on it. |
I don't have a minimal repro yet, but it looks very much like this is only happening cross crate. |
Minimized (probably not minimal) repro: // a.rs
pub const FOO: *const i8 = 0 as *const i8;
pub static mut BAR: [*const i8; 4] = [FOO, FOO, FOO, FOO];
pub static mut BAA: (*const i8, i32, *const i8) = (
unsafe { &BAR as *const _ as *const i8 },
42,
unsafe { &BOO as *const _ as *const i8 },
);
pub static mut BOO: (*const i8, *const i8, u32) = (
unsafe { &BAA as *const _ as *const i8 },
&FOO as *const _ as *const i8,
99,
);
// b.rs
extern crate a;
static mut BOO: *const i32 = unsafe { &a::BOO as *const _ as *const i32 };
fn main() {} Adding an empty line to the beginning of |
Fully minimized pub static mut BAA: *const i8 = unsafe { &BOO as *const _ as *const i8 };
pub static mut BOO: *const i8 = unsafe { &BAA as *const _ as *const i8 };
fn main() {} Adding an empty line to the beginning of the file causes an ICE. The only possible fix I see is to add the previously discussed interpret-alloc-table that'll get cached via the footer instead of trying to do everything inline |
…woerister Don't recurse into allocations, use a global table instead r? @michaelwoerister fixes #49663
Sorry, the testcase is not exactly simple, but:
cargo +beta test --all --all-features
cargo +beta test --all --all-features
cargo clean
cargo +beta test --all --all-features
Does not reproduce on stable 1.25, reproduces on nightly as well.
The text was updated successfully, but these errors were encountered: