generated from amazon-archives/__template_Apache-2.0
-
Notifications
You must be signed in to change notification settings - Fork 141
Open
Labels
Z-Kani CompilerIssues that require some changes to the compilerIssues that require some changes to the compiler[C] BugThis is a bug. Something isn't working.This is a bug. Something isn't working.[F] CrashKani crashedKani crashed
Description
I tried this code:
#![feature(unsized_locals)]
#![feature(unboxed_closures)]
#![feature(tuple_trait)]
pub trait FnOnce<Args: std::marker::Tuple> {
type Output;
extern "rust-call" fn call_once(self, args: Args) -> Self::Output;
}
struct A;
impl FnOnce<()> for A {
type Output = String;
extern "rust-call" fn call_once(self, (): ()) -> Self::Output {
format!("hello")
}
}
#[kani::proof]
fn main() {
let x = *(Box::new(A) as Box<dyn FnOnce<(), Output = String>>);
}using the following command line invocation:
kani <file>
with Kani version: 0.22.0
I expected to see this happen: explanation
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
--> by-value-trait-objects-rust-call.rs:1:12
|
1 | #![feature(unsized_locals)]
| ^^^^^^^^^^^^^^
|
= note: see issue #48055 <https://github.com/rust-lang/rust/issues/48055> for more information
= note: `#[warn(incomplete_features)]` on by default
warning: unused variable: `x`
--> by-value-trait-objects-rust-call.rs:21:9
|
21 | let x = *(Box::new(A) as Box<dyn FnOnce<(), Output = String>>);
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
= note: `#[warn(unused_variables)]` on by default
thread '<unnamed>' panicked at 'assertion failed: `(left == right)`
left: `TypeDef { name: "_12941685954569310162Inner", typ: StructTag("tag-Unit") }`,
right: `StructTag("tag-_12941685954569310162::FatPtr")`: Error: assign statement with unequal types lhs TypeDef { name: "_12941685954569310162Inner", typ: StructTag("tag-Unit") } rhs StructTag("tag-_12941685954569310162::FatPtr")', cprover_bindings/src/goto_program/stmt.rs:170:9
stack backtrace:
0: 0x7f723cb667da - std::backtrace_rs::backtrace::libunwind::trace::hc84915c67f6fb1e5
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f723cb667da - std::backtrace_rs::backtrace::trace_unsynchronized::h74fef551999c3a2f
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f723cb667da - std::sys_common::backtrace::_print_fmt::h8acfd19c1a6f1d1d
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/sys_common/backtrace.rs:65:5
3: 0x7f723cb667da - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h9271b09f3576b7e0
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7f723cbc92ee - core::fmt::write::h27d0bbb767cff1d5
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/core/src/fmt/mod.rs:1208:17
5: 0x7f723cb56c65 - std::io::Write::write_fmt::hc409ea2bb818fbea
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/io/mod.rs:1682:15
6: 0x7f723cb665a5 - std::sys_common::backtrace::_print::hfa031a98cf1e4011
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/sys_common/backtrace.rs:47:5
7: 0x7f723cb665a5 - std::sys_common::backtrace::print::he69ac0980f15620d
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/sys_common/backtrace.rs:34:9
8: 0x7f723cb692ef - std::panicking::default_hook::{{closure}}::h014cf704a69dce2b
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/panicking.rs:267:22
9: 0x7f723cb6902b - std::panicking::default_hook::h380e71f8d8d49df7
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/panicking.rs:286:9
10: 0x556ad4daeb0d - kani_compiler::session::PANIC_HOOK::{{closure}}::{{closure}}::h10f33c4e395bf462
11: 0x556ad4d04f67 - kani_compiler::codegen_cprover_gotoc::utils::debug::DEFAULT_HOOK::{{closure}}::{{closure}}::hf568cc16e5ffa08a
12: 0x7f723cb69b2d - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcfa7e50330911a79
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/alloc/src/boxed.rs:2032:9
13: 0x7f723cb69b2d - std::panicking::rust_panic_with_hook::h483f1ef90c766581
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/panicking.rs:692:13
14: 0x7f723cb698a9 - std::panicking::begin_panic_handler::{{closure}}::hd4c7d9116c0ef489
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/panicking.rs:579:13
15: 0x7f723cb66c8c - std::sys_common::backtrace::__rust_end_short_backtrace::had27a083c7d7188b
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/sys_common/backtrace.rs:137:18
16: 0x7f723cb695b2 - rust_begin_unwind
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/panicking.rs:575:5
17: 0x7f723cbc5cd3 - core::panicking::panic_fmt::hbacb72817da3b060
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/core/src/panicking.rs:64:14
18: 0x7f723cbc61b9 - core::panicking::assert_failed_inner::hac89d137c8eb08b5
19: 0x556ad4c7393b - core::panicking::assert_failed::h991deaaec5d8e4bb
20: 0x556ad4f177aa - cprover_bindings::goto_program::stmt::Stmt::assign::h045ddde843be864f
21: 0x556ad4ee8c4d - cprover_bindings::goto_program::expr::Expr::assign::h2c9c2bd44389a1ad
22: 0x556ad4cd80d7 - kani_compiler::codegen_cprover_gotoc::codegen::statement::<impl kani_compiler::codegen_cprover_gotoc::context::goto_ctx::GotocCtx>::codegen_statement::h4c6e1c8bf226a338
23: 0x556ad4c7f0d1 - kani_compiler::codegen_cprover_gotoc::codegen::function::<impl kani_compiler::codegen_cprover_gotoc::context::goto_ctx::GotocCtx>::codegen_function::h541ea7f90d847b35
24: 0x556ad4d0abf0 - std::thread::local::LocalKey<T>::with::hb907a536239d23f6
25: 0x556ad4d964c8 - <kani_compiler::codegen_cprover_gotoc::compiler_interface::GotocCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate::heaa499391d53b3f6
26: 0x7f723f086fa1 - <rustc_session[19dfb3d05ff8562d]::session::Session>::time::<alloc[58cfa59ca61fafa9]::boxed::Box<dyn core[6d94cc961ac87456]::any::Any>, rustc_interface[aec886e93b1add3f]::passes::start_codegen::{closure#0}>
27: 0x7f723f086ac9 - rustc_interface[aec886e93b1add3f]::passes::start_codegen
28: 0x7f723f0847a6 - <rustc_interface[aec886e93b1add3f]::passes::QueryContext>::enter::<<rustc_interface[aec886e93b1add3f]::queries::Queries>::ongoing_codegen::{closure#0}::{closure#0}, core[6d94cc961ac87456]::result::Result<alloc[58cfa59ca61fafa9]::boxed::Box<dyn core[6d94cc961ac87456]::any::Any>, rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>>
29: 0x7f723f081a46 - <rustc_interface[aec886e93b1add3f]::queries::Queries>::ongoing_codegen
30: 0x7f723f080f67 - <rustc_interface[aec886e93b1add3f]::interface::Compiler>::enter::<rustc_driver[94a2f0241de75afa]::run_compiler::{closure#1}::{closure#2}, core[6d94cc961ac87456]::result::Result<core[6d94cc961ac87456]::option::Option<rustc_interface[aec886e93b1add3f]::queries::Linker>, rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>>
31: 0x7f723f07bf88 - rustc_span[ae2df7aa7c6c667b]::with_source_map::<core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>, rustc_interface[aec886e93b1add3f]::interface::run_compiler<core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>, rustc_driver[94a2f0241de75afa]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
32: 0x7f723f07ba75 - <scoped_tls[db87656d258d017b]::ScopedKey<rustc_span[ae2df7aa7c6c667b]::SessionGlobals>>::set::<rustc_interface[aec886e93b1add3f]::interface::run_compiler<core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>, rustc_driver[94a2f0241de75afa]::run_compiler::{closure#1}>::{closure#0}, core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>>
33: 0x7f723f07b062 - std[acd1f573e90225f]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[aec886e93b1add3f]::util::run_in_thread_pool_with_globals<rustc_interface[aec886e93b1add3f]::interface::run_compiler<core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>, rustc_driver[94a2f0241de75afa]::run_compiler::{closure#1}>::{closure#0}, core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>>
34: 0x7f723f6ec49e - <<std[acd1f573e90225f]::thread::Builder>::spawn_unchecked_<rustc_interface[aec886e93b1add3f]::util::run_in_thread_pool_with_globals<rustc_interface[aec886e93b1add3f]::interface::run_compiler<core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>, rustc_driver[94a2f0241de75afa]::run_compiler::{closure#1}>::{closure#0}, core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[6d94cc961ac87456]::result::Result<(), rustc_errors[56887b15c7ec6fbf]::ErrorGuaranteed>>::{closure#1} as core[6d94cc961ac87456]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
35: 0x7f7240bda2d3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::he955d3e33f115328
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/alloc/src/boxed.rs:2000:9
36: 0x7f7240bda2d3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h32515d9eaa012a19
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/alloc/src/boxed.rs:2000:9
37: 0x7f7240bda2d3 - std::sys::unix::thread::Thread::new::thread_start::h5af9cdd9a5a58d64
at /rustc/c6fcdb690609769a240fc8ab0de0ce68d5ea7dba/library/std/src/sys/unix/thread.rs:108:17
38: 0x7f723c81dbb5 - <unknown>
39: 0x7f723c89fd90 - <unknown>
40: 0x0 - <unknown>
Kani unexpectedly panicked during compilation.
Please file an issue here: https://github.com/model-checking/kani/issues/new?labels=bug&template=bug_report.md
[Kani] current codegen item: codegen_function: main
main
[Kani] current codegen location: Loc { file: "/tmp/im/by-value-trait-objects-rust-call.rs", function: None, start_line: 20, start_col: Some(1), end_line: 20, end_col: Some(10) }
warning: 2 warnings emitted
error: /home/matthias/.kani/kani-0.22.0/bin/kani-compiler exited with status exit status: 101
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Z-Kani CompilerIssues that require some changes to the compilerIssues that require some changes to the compiler[C] BugThis is a bug. Something isn't working.This is a bug. Something isn't working.[F] CrashKani crashedKani crashed