Skip to content

NumCast::from() crashes compiler #6440

Closed
@vmx

Description

@vmx

I don't know exactly what the problem is as I'm new to Rust. Though this little script crashed the compiler:

use core::num::NumCast;

trait Decode {
    fn decode(&self) -> Self;
}

impl Decode for f32 {
    fn decode(&self) -> f32 {
        3.2f32
    }
}

fn decode_test<T: Float + Decode>(value: T) {
    let mut float_part = value.decode();
    float_part *= NumCast::from(2.0);
    io::println(fmt!("decode test: %?", float_part))
}

fn main() {
    decode_test(5.5f32);
}

Here's the crash backtrace:

$ RUST_LOG=rustc=1,::rt::backtrace rustc bug3.rs  
rust: task failed at 'assertion failed: !bcx.ccx().maps.moves_map.contains(&arg_expr.id)', /home/vmx/src/rust/rust/src/librustc/middle/trans/callee.rs:746
/home/vmx/src/build/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f4a57233beb]
/home/vmx/src/build/bin/../lib/librustrt.so(+0x2cb79)[0x7f4a57244b79]
/home/vmx/src/build/bin/../lib/librustrt.so(upcall_fail+0x1a0)[0x7f4a57235b90]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(+0x11839b)[0x7f4a5920439b]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(+0x118342)[0x7f4a59204342]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(_ZN3sys14__extensions__9meth_69349fail_with17_ac9eb45dc42bd6906_07preE+0x6b)[0x7f4a59150e1b]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee14trans_arg_expr16_a7171168f339fdb6_07preE+0x1fcd)[0x7f4a576ab4bd]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x233427)[0x7f4a576a9427]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x2332ad)[0x7f4a576a92ad]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee10trans_args17_b7d5d85970c828216_07preE+0x1be)[0x7f4a576a7c0e]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x230d96)[0x7f4a576a6d96]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base10with_scope17_603e193484687ac26_07preE+0x5fc)[0x7f4a57655f0c]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee16trans_call_inner16_fad8eab25a946276_07preE+0x129)[0x7f4a5768c9c9]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x250f33)[0x7f4a576c6f33]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x24a7e3)[0x7f4a576c07e3]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x2460a2)[0x7f4a576bc0a2]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4expr10trans_into16_40d0456c867f93f6_07preE+0xb71)[0x7f4a57608551]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base10trans_stmt17_43bf28ec6768e7a76_07preE+0x646)[0x7f4a576073b6]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x1906da)[0x7f4a576066da]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x1905fa)[0x7f4a576065fa]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans11controlflow11trans_block16_b496e3154f1b38e6_07preE+0x1b4)[0x7f4a57604c74]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base13trans_closure17_fcb2fd41ff432b416_07preE+0xa61)[0x7f4a577320e1]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base8trans_fn17_d7c68e73d1906ae46_07preE+0x685)[0x7f4a575ba485]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans12monomorphize14monomorphic_fn17_e47b70ff4fc54afc6_07preE+0x4937)[0x7f4a575bf347]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee25trans_fn_ref_with_vtables16_6c244cb718e619a6_07preE+0x11ac)[0x7f4a5768ae3c]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee12trans_fn_ref17_ef426c51276dbd416_07preE+0x88e)[0x7f4a576868ce]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee5trans17_c4eeac58e3f0d1586_07preE+0x7c0)[0x7f4a57684840]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x216b28)[0x7f4a5768cb28]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x2307fd)[0x7f4a576a67fd]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base10with_scope17_603e193484687ac26_07preE+0x5fc)[0x7f4a57655f0c]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee16trans_call_inner16_fad8eab25a946276_07preE+0x129)[0x7f4a5768c9c9]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans6callee10trans_call17_daeffb46f6d8cc626_07preE+0x324)[0x7f4a5768c5b4]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x240da7)[0x7f4a576b6da7]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4expr10trans_into16_40d0456c867f93f6_07preE+0x955)[0x7f4a57608335]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base10trans_stmt17_43bf28ec6768e7a76_07preE+0x646)[0x7f4a576073b6]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x1906da)[0x7f4a576066da]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x1905fa)[0x7f4a576065fa]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans11controlflow11trans_block16_b496e3154f1b38e6_07preE+0x1b4)[0x7f4a57604c74]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base13trans_closure17_fcb2fd41ff432b416_07preE+0xa61)[0x7f4a577320e1]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base8trans_fn17_d7c68e73d1906ae46_07preE+0x685)[0x7f4a575ba485]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base10trans_item17_76fafa1ef87a67ad6_07preE+0x11c9)[0x7f4a575b0b59]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x2c3488)[0x7f4a57739488]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0x21c129)[0x7f4a57692129]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base9trans_mod16_89439393d55e18e6_07preE+0xa5)[0x7f4a57738f95]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6middle5trans4base11trans_crate16_4ca7c4c1d2a904b6_07preE+0x2202)[0x7f4a57757242]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6driver6driver12compile_rest17_8455b26eec54ff806_07preE+0x3e1c)[0x7f4a57e39a1c]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6driver6driver12compile_upto17_cba46c96e7b779736_07preE+0x192)[0x7f4a57e3d2f2]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN6driver6driver13compile_input17_5312304d495027516_07preE+0x107)[0x7f4a57e3d777]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN12run_compiler17_faf6647f92eef22b6_07preE+0x2bf4)[0x7f4a57e69434]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0xa052fe)[0x7f4a57e7b2fe]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0xa02e0c)[0x7f4a57e78e0c]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0xa00f9c)[0x7f4a57e76f9c]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0xa055d0)[0x7f4a57e7b5d0]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(+0xe3723)[0x7f4a591cf723]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(+0x15bc08)[0x7f4a59247c08]
/home/vmx/src/build/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x24)[0x7f4a57234594]
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug
note: try running with RUST_LOG=rustc=1,::rt::backtrace to get further details and report the results to github.com/mozilla/rust/issues
rust: task failed at 'explicit failure', /home/vmx/src/rust/rust/src/librustc/rustc.rc:349
/home/vmx/src/build/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f4a57233beb]
/home/vmx/src/build/bin/../lib/librustrt.so(+0x2cb79)[0x7f4a57244b79]
/home/vmx/src/build/bin/../lib/librustrt.so(upcall_fail+0x1a0)[0x7f4a57235b90]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(+0x11839b)[0x7f4a5920439b]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(+0x1183e2)[0x7f4a592043e2]
/home/vmx/src/build/bin/../lib/libcore-c3ca5d77d81b46c1-0.7-pre.so(+0xc3d04)[0x7f4a591afd04]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN7monitor17_9fc4cea5345c48116_07preE+0x6bc5)[0x7f4a57e711f5]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(+0xa055d0)[0x7f4a57e7b5d0]
/home/vmx/src/build/bin/../lib/librustc-c84825241471686d-0.7-pre.so(_ZN4main15_c4de63b748e03d6_07preE+0x69)[0x7f4a57e7b239]
rustc(_rust_main+0x2e)[0x400cae]
/home/vmx/src/build/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x24)[0x7f4a57234594]
rust: domain main @0x12a6410 root task failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions