Skip to content

ice: error was constructed but not emitted #122345

Closed
@matthiaskrgr

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

fn main() {
    unsafe {
        dealloc(ptr2, Layout::(x: !)(1, 1));
    }
}

original:

//@error-in-other-file: /deallocation .* tag does not exist in the borrow stack/
use VecDeque::alloc::{alloc, dealloc, Layout};

fn main() {
    unsafe {
        let x = alloc(Layout::from_size_align_unchecked(1, 1));
        let ptr1 = (&mut *x) as *mut u8;
        let ptr2 = (&mut *ptr1) as *mut u8;
        // Invalidate ptr2 by writing to ptr1.
        ptr1.write(0);
        // Deallocate through ptr2.
        dealloc(ptr2, Layout::(x: !)(1, 1));
    }
}

Version information

rustc 1.78.0-nightly (6554a5645 2024-03-11)
binary: rustc
commit-hash: 6554a5645a13e4d9331fd028960d69be91d7492d
commit-date: 2024-03-11
host: x86_64-unknown-linux-gnu
release: 1.78.0-nightly
LLVM version: 18.1.0

Command:
/home/matthias/.rustup/toolchains/master/bin/rustc

Program output

error: internal compiler error: the following error was constructed but not emitted

error: expected one of `!`, `)`, `,`, `.`, `::`, `?`, `{`, or an operator, found `:`
  --> /tmp/icemaker_global_tempdir.zlQSc6l4KgTO/rustc_testrunner_tmpdir_reporting.iH9w1iUnjMbI/mvce.rs:12:33
   |
12 |         dealloc(ptr2, Layout::(x: !)(1, 1));
   |                                 ^ expected one of 8 possible tokens

thread 'rustc' panicked at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/compiler/rustc_errors/src/diagnostic.rs:1374:17:
error was constructed but not emitted
stack backtrace:
   0:     0x7fdc6df8c6a2 - std::backtrace_rs::backtrace::libunwind::trace::h04b4f3bbfa4a768d
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x7fdc6df8c6a2 - std::backtrace_rs::backtrace::trace_unsynchronized::hf6a64781360b5b60
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fdc6df8c6a2 - std::sys_common::backtrace::_print_fmt::hb80301e31516867e
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7fdc6df8c6a2 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4c0b2165bb9f00fd
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fdc6dfdd68c - core::fmt::rt::Argument::fmt::h1fd94ac4335d4c2e
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/core/src/fmt/rt.rs:142:9
   5:     0x7fdc6dfdd68c - core::fmt::write::h36d27d5348ad7082
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/core/src/fmt/mod.rs:1153:17
   6:     0x7fdc6df811af - std::io::Write::write_fmt::he05c57f4b5f640b1
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/io/mod.rs:1843:15
   7:     0x7fdc6df8c474 - std::sys_common::backtrace::_print::hc63a51f316909c44
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7fdc6df8c474 - std::sys_common::backtrace::print::he28e541aa794d67b
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7fdc6df8f17b - std::panicking::default_hook::{{closure}}::hf3b65de4f65db9fa
  10:     0x7fdc6df8eed3 - std::panicking::default_hook::h01529c8b2c069046
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/panicking.rs:292:9
  11:     0x7fdc70e71ae7 - std[631fd172171eed31]::panicking::update_hook::<alloc[c9b7c2961447b50b]::boxed::Box<rustc_driver_impl[5e8d5879b2085a20]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7fdc6df8f8e0 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hf9fa03e4c8034cc3
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/alloc/src/boxed.rs:2034:9
  13:     0x7fdc6df8f8e0 - std::panicking::rust_panic_with_hook::h53fe45788d16e6e3
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/panicking.rs:783:13
  14:     0x7fdc6df8f5e9 - std::panicking::begin_panic_handler::{{closure}}::h40a0338a3263f597
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/panicking.rs:649:13
  15:     0x7fdc6df8cb76 - std::sys_common::backtrace::__rust_end_short_backtrace::ha3f91ae072ccea19
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7fdc6df8f354 - rust_begin_unwind
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/panicking.rs:645:5
  17:     0x7fdc6dfd9ba5 - core::panicking::panic_fmt::h17d2d30dafa85036
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/core/src/panicking.rs:72:14
  18:     0x7fdc6f4d7661 - core[f426184f278e30da]::ptr::drop_in_place::<rustc_errors[e20c07c7ad670ae1]::diagnostic::Diag>
  19:     0x7fdc7153c028 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::recover_fn_call_leading_path_sep
  20:     0x7fdc72486810 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_path_segments
  21:     0x7fdc7248fc3e - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_dot_or_call
  22:     0x7fdc7248a92a - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_prefix
  23:     0x7fdc6f472b4b - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_assoc_with
  24:     0x7fdc728ca811 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_delim_comma_seq::<rustc_ast[dc3545ae43aa9a83]::ptr::P<rustc_ast[dc3545ae43aa9a83]::ast::Expr>, <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_paren_seq::{closure#0}>
  25:     0x7fdc728e855c - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_stmt_without_recovery
  26:     0x7fdc728e6491 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_full_stmt
  27:     0x7fdc72de4c17 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_block_common
  28:     0x7fdc72de21e4 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_block
  29:     0x7fdc72494aa8 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_dot_or_call
  30:     0x7fdc7248a92a - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_prefix
  31:     0x7fdc6f472b4b - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_expr_assoc_with
  32:     0x7fdc728e90b8 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_stmt_without_recovery
  33:     0x7fdc728e5062 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_block_tail
  34:     0x7fdc728e119b - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_fn
  35:     0x7fdc72bc28d0 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_item_kind
  36:     0x7fdc72522d48 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_item_common
  37:     0x7fdc72520779 - <rustc_parse[db6be81d6c038e49]::parser::Parser>::parse_mod
  38:     0x7fdc731e730e - rustc_interface[bae53d512d67c20f]::passes::parse
  39:     0x7fdc731e7113 - <rustc_interface[bae53d512d67c20f]::queries::Queries>::parse
  40:     0x7fdc731d91f8 - rustc_interface[bae53d512d67c20f]::interface::run_compiler::<core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>, rustc_driver_impl[5e8d5879b2085a20]::run_compiler::{closure#0}>::{closure#0}
  41:     0x7fdc732202c5 - std[631fd172171eed31]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[bae53d512d67c20f]::util::run_in_thread_with_globals<rustc_interface[bae53d512d67c20f]::util::run_in_thread_pool_with_globals<rustc_interface[bae53d512d67c20f]::interface::run_compiler<core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>, rustc_driver_impl[5e8d5879b2085a20]::run_compiler::{closure#0}>::{closure#0}, core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>>::{closure#0}, core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>>
  42:     0x7fdc732200f2 - <<std[631fd172171eed31]::thread::Builder>::spawn_unchecked_<rustc_interface[bae53d512d67c20f]::util::run_in_thread_with_globals<rustc_interface[bae53d512d67c20f]::util::run_in_thread_pool_with_globals<rustc_interface[bae53d512d67c20f]::interface::run_compiler<core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>, rustc_driver_impl[5e8d5879b2085a20]::run_compiler::{closure#0}>::{closure#0}, core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>>::{closure#0}, core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[f426184f278e30da]::result::Result<(), rustc_span[49d1d936f5fb4509]::ErrorGuaranteed>>::{closure#1} as core[f426184f278e30da]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  43:     0x7fdc6df990b5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h0835e6cae003a67b
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/alloc/src/boxed.rs:2020:9
  44:     0x7fdc6df990b5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf296cba46eb34679
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/alloc/src/boxed.rs:2020:9
  45:     0x7fdc6df990b5 - std::sys::pal::unix::thread::Thread::new::thread_start::h4796031db2384a5e
                               at /rustc/6554a5645a13e4d9331fd028960d69be91d7492d/library/std/src/sys/pal/unix/thread.rs:108:17
  46:     0x7fdc6dd8055a - <unknown>
  47:     0x7fdc6ddfda3c - <unknown>
  48:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.78.0-nightly (6554a5645 2024-03-11) running on x86_64-unknown-linux-gnu

query stack during panic:
end of query stack
error: aborting due to 2 previous errors


Metadata

Metadata

Assignees

Labels

A-parserArea: The lexing & parsing of Rust source code to an ASTC-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