Skip to content
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: unreachable callee::get_fn() with extern C fn #292

Closed
matthiaskrgr opened this issue Jul 1, 2023 · 0 comments · Fixed by #499
Closed

ice: unreachable callee::get_fn() with extern C fn #292

matthiaskrgr opened this issue Jul 1, 2023 · 0 comments · Fixed by #499

Comments

@matthiaskrgr
Copy link
Member

./src/tools/miri/tests/fail/function_calls/exported_symbol_wrong_type.rs

(this compiles with rustc but should cause errors under miri)

#[no_mangle]
static FOO: () = ();

fn main() {
    extern "C" {
        fn FOO();
    }
    unsafe { FOO() } //~ ERROR: attempt to call an exported symbol that is not defined as a function
}
thread 'rustc' panicked at 'internal error: entered unreachable code', src/callee.rs:35:13
stack backtrace:
   0:     0x7f4856b67e11 - std::backtrace_rs::backtrace::libunwind::trace::h184786643c1f8146
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f4856b67e11 - std::backtrace_rs::backtrace::trace_unsynchronized::h10cef21dd42edd42
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f4856b67e11 - std::sys_common::backtrace::_print_fmt::hca8722c6f82eccd9
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7f4856b67e11 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4b170c65cdf95c48
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f4856bc94bf - core::fmt::rt::Argument::fmt::h7e50834cab28e102
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/core/src/fmt/rt.rs:138:9
   5:     0x7f4856bc94bf - core::fmt::write::h8bd64fe81f89dd81
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/core/src/fmt/mod.rs:1094:21
   6:     0x7f4856b5a977 - std::io::Write::write_fmt::hc75a842b3ecac8bc
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/io/mod.rs:1714:15
   7:     0x7f4856b67c25 - std::sys_common::backtrace::_print::hdb7a31bd8c54eb49
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f4856b67c25 - std::sys_common::backtrace::print::hbcf968a4222dc0b5
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f4856b6a9d3 - std::panicking::default_hook::{{closure}}::h02987b13cfa1387d
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/panicking.rs:269:22
  10:     0x7f4856b6a764 - std::panicking::default_hook::hcb3fd44404995c49
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/panicking.rs:288:9
  11:     0x7f4859dabd6b - <rustc_driver_impl[7175fdba515aac6e]::install_ice_hook::{closure#0} as core[baaa20f768102eef]::ops::function::FnOnce<(&core[baaa20f768102eef]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
  12:     0x7f4856b6b1fe - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hec1e31de726d1657
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/alloc/src/boxed.rs:2007:9
  13:     0x7f4856b6b1fe - std::panicking::rust_panic_with_hook::h223f39091438ac61
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/panicking.rs:709:13
  14:     0x7f4856b6af41 - std::panicking::begin_panic_handler::{{closure}}::h4644cfd73fc4a198
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/panicking.rs:595:13
  15:     0x7f4856b68246 - std::sys_common::backtrace::__rust_end_short_backtrace::hfbaa4867b3658893
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/sys_common/backtrace.rs:151:18
  16:     0x7f4856b6acd2 - rust_begin_unwind
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/panicking.rs:593:5
  17:     0x7f4856bc5743 - core::panicking::panic_fmt::hbd4e3abda5ea01cd
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/core/src/panicking.rs:67:14
  18:     0x7f4856bc57d3 - core::panicking::panic::h30709005efaa563b
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/core/src/panicking.rs:117:5
  19:     0x7f484be86a94 - rustc_codegen_gcc::callee::get_fn::h82a24d48dcda9255
  20:     0x7f484bed435e - <rustc_codegen_gcc::context::CodegenCx as rustc_codegen_ssa::traits::misc::MiscMethods>::get_fn_addr::h0d8e3094c580bcfd
  21:     0x7f484bfa4095 - rustc_codegen_ssa::mir::block::<impl rustc_codegen_ssa::mir::FunctionCx<Bx>>::codegen_terminator::hdaf13f128cded52e
  22:     0x7f484bf9e56f - rustc_codegen_ssa::mir::codegen_mir::h3ad98a26028d240e
  23:     0x7f484be83015 - rustc_codegen_ssa::base::codegen_instance::h4de2a7fcd42b8fec
  24:     0x7f484beb779f - <rustc_middle::mir::mono::MonoItem as rustc_codegen_ssa::mono_item::MonoItemExt>::define::h3ba430a5d5241f22
  25:     0x7f484bf7aa8a - rustc_codegen_gcc::base::compile_codegen_unit::module_codegen::he6166c6882b2cbb7
  26:     0x7f484bf7999e - rustc_codegen_gcc::base::compile_codegen_unit::hee038d1e76e08ed1
  27:     0x7f484bea96fd - <rustc_codegen_gcc::GccCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::h9454ef5ee5ef580e
  28:     0x7f484be8276d - rustc_codegen_ssa::base::codegen_crate::h1a4124ddfd8d676d
  29:     0x7f484bea932a - <rustc_codegen_gcc::GccCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate::hfb6d3003355e12ad
  30:     0x7f48592dcbc2 - <rustc_session[ebb9057f9195e4cc]::session::Session>::time::<alloc[d1ea88cdd25af2a4]::boxed::Box<dyn core[baaa20f768102eef]::any::Any>, rustc_interface[e3841d12b9b221e7]::passes::start_codegen::{closure#0}>
  31:     0x7f48592dc73b - rustc_interface[e3841d12b9b221e7]::passes::start_codegen
  32:     0x7f48592d749d - <rustc_middle[56c503886228b671]::ty::context::GlobalCtxt>::enter::<<rustc_interface[e3841d12b9b221e7]::queries::Queries>::ongoing_codegen::{closure#0}::{closure#0}, core[baaa20f768102eef]::result::Result<alloc[d1ea88cdd25af2a4]::boxed::Box<dyn core[baaa20f768102eef]::any::Any>, rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>>
  33:     0x7f48592d66cd - <rustc_interface[e3841d12b9b221e7]::queries::Queries>::ongoing_codegen
  34:     0x7f48592d57f0 - <rustc_interface[e3841d12b9b221e7]::interface::Compiler>::enter::<rustc_driver_impl[7175fdba515aac6e]::run_compiler::{closure#1}::{closure#2}, core[baaa20f768102eef]::result::Result<core[baaa20f768102eef]::option::Option<rustc_interface[e3841d12b9b221e7]::queries::Linker>, rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>>
  35:     0x7f48592d2e21 - std[755122e38bdf80bb]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[e3841d12b9b221e7]::util::run_in_thread_pool_with_globals<rustc_interface[e3841d12b9b221e7]::interface::run_compiler<core[baaa20f768102eef]::result::Result<(), rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>, rustc_driver_impl[7175fdba515aac6e]::run_compiler::{closure#1}>::{closure#0}, core[baaa20f768102eef]::result::Result<(), rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[baaa20f768102eef]::result::Result<(), rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>>
  36:     0x7f48592d25a5 - <<std[755122e38bdf80bb]::thread::Builder>::spawn_unchecked_<rustc_interface[e3841d12b9b221e7]::util::run_in_thread_pool_with_globals<rustc_interface[e3841d12b9b221e7]::interface::run_compiler<core[baaa20f768102eef]::result::Result<(), rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>, rustc_driver_impl[7175fdba515aac6e]::run_compiler::{closure#1}>::{closure#0}, core[baaa20f768102eef]::result::Result<(), rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[baaa20f768102eef]::result::Result<(), rustc_span[1e0547ff349d1bca]::ErrorGuaranteed>>::{closure#1} as core[baaa20f768102eef]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  37:     0x7f4856b75685 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h59d6baf462325ed4
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/alloc/src/boxed.rs:1993:9
  38:     0x7f4856b75685 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h4eca0dd82537346f
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/alloc/src/boxed.rs:1993:9
  39:     0x7f4856b75685 - std::sys::unix::thread::Thread::new::thread_start::h38e13b8ca4256fdb
                               at /rustc/2d0aa57684e10f7b3d3fe740ee18d431181583ad/library/std/src/sys/unix/thread.rs:108:17
  40:     0x7f485690d44b - <unknown>
  41:     0x7f4856990e40 - <unknown>
  42:                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.72.0-nightly (2d0aa5768 2023-06-18) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z codegen-backend=/home/matthias/vcs/github/rustc_codegen_gcc_attempt2/rustc_codegen_gcc/target/release/librustc_codegen_gcc.so

query stack during panic:
end of query stack
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant