Skip to content

ICE: can't make T_opaque_trait with bare trait store #5883

Closed

Description

@kvark

Got an ICE while porting a big project from 0.5 to 0.6. Rust log says the following:

RUST_LOG=rustc=1,::rt::backtrace rustc engine/engine.rs -L lib --out-dir lib
error: internal compiler error: can't make T_opaque_trait with bare trait store
rust: task failed at 'explicit failure', /build/src/rust-0.6/src/libsyntax/diagnostic.rs:99
/usr/lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f74d607664b]
/usr/lib/librustrt.so(+0x2a189)[0x7f74d6087189]
/usr/lib/librustrt.so(upcall_fail+0x198)[0x7f74d60783a8]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(+0x1055db)[0x7f74d927e5db]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(+0x105582)[0x7f74d927e582]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(_ZN3sys12begin_unwind17_61fe198059b9e3fc3_06E+0x71)[0x7f74d91c6651]
/usr/lib/libsyntax-84efebcb12c867a2-0.6.so(_ZN10diagnostic14__extensions__9meth_84585fatal15_c79235bb6437b73_06E+0x196)[0x7f74d8734896]
/usr/lib/libsyntax-84efebcb12c867a2-0.6.so(_ZN10diagnostic14__extensions__9meth_84813bug15_c79235bb6437b73_06E+0x6f)[0x7f74d873502f]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6driver7session14__extensions__10meth_188433bug17_b5f71376f9f489aa3_06E+0x80)[0x7f74d7a99e50]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans6common14T_opaque_trait17_d487fd18f1d421363_06E+0x3f1)[0x7f74d7bb5691]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of14sizing_type_of15_c1bc195eb34bc63_06E+0xb8e)[0x7f74d7bc943e]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x11a75f)[0x7f74d7aa675f]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x34e4b7)[0x7f74d7cda4b7]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans3adt14represent_type17_cff2701782ac89703_06E+0x1789)[0x7f74d7b4c5c9]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x17bd)[0x7f74d7ae736d]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0xf5e)[0x7f74d7ae6b0e]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x11a75f)[0x7f74d7aa675f]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x34f922)[0x7f74d7cdb922]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x34f4ce)[0x7f74d7cdb4ce]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans3adt9fields_of17_ffb4601ba2c964233_06E+0x3f)[0x7f74d7bd09df]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x17ec)[0x7f74d7ae739c]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x738)[0x7f74d7ae62e8]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0xf5e)[0x7f74d7ae6b0e]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x3da)[0x7f74d7ae5f8a]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x11a75f)[0x7f74d7aa675f]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x34f922)[0x7f74d7cdb922]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x34f4ce)[0x7f74d7cdb4ce]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans3adt9fields_of17_ffb4601ba2c964233_06E+0x3f)[0x7f74d7bd09df]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x17ec)[0x7f74d7ae739c]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x738)[0x7f74d7ae62e8]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x11a75f)[0x7f74d7aa675f]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x34f922)[0x7f74d7cdb922]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x34f4ce)[0x7f74d7cdb4ce]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans3adt9fields_of17_ffb4601ba2c964233_06E+0x3f)[0x7f74d7bd09df]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x17ec)[0x7f74d7ae739c]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x91a)[0x7f74d7ae64ca]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans7type_of7type_of15_c1bc195eb34bc63_06E+0x3da)[0x7f74d7ae5f8a]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4expr15trans_local_var17_f79ea779daedaa9f3_06E+0x163)[0x7f74d7b9e5b3]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x20d3f2)[0x7f74d7b993f2]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1f8b22)[0x7f74d7b84b22]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1f6ea0)[0x7f74d7b82ea0]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b8b34)[0x7f74d8244b34]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4expr14trans_to_datum17_e5e293cc226c2b7b3_06E+0x321)[0x7f74d7aee861]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x20cf52)[0x7f74d7b98f52]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1f8b22)[0x7f74d7b84b22]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1f6ea0)[0x7f74d7b82ea0]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4expr14trans_to_datum17_e5e293cc226c2b7b3_06E+0x321)[0x7f74d7aee861]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans6callee14trans_arg_expr16_7c52c158fb4e7943_06E+0x9b3)[0x7f74d7b7f253]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4meth14trans_self_arg17_544359e931bae1b23_06E+0x120)[0x7f74d7c73920]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4meth19trans_method_callee17_63afa2148d7b3f823_06E+0x11f0)[0x7f74d7b65d60]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1e089f)[0x7f74d7b6c89f]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1effe2)[0x7f74d7b7bfe2]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base10with_scope16_42e4eeeae78c8643_06E+0x56e)[0x7f74d7b3910e]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans6callee16trans_call_inner17_c39d6d201e1eca503_06E+0xc2)[0x7f74d7b6c182]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans6callee17trans_method_call17_4be16fc4341e49e93_06E+0x1fa)[0x7f74d7b6c4aa]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1fd2d3)[0x7f74d7b892d3]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1f7171)[0x7f74d7b83171]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4expr14trans_to_datum17_e5e293cc226c2b7b3_06E+0x321)[0x7f74d7aee861]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans6callee14trans_arg_expr16_7c52c158fb4e7943_06E+0x9b3)[0x7f74d7b7f253]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4meth14trans_self_arg17_544359e931bae1b23_06E+0x120)[0x7f74d7c73920]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4meth19trans_method_callee17_63afa2148d7b3f823_06E+0x11f0)[0x7f74d7b65d60]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1e089f)[0x7f74d7b6c89f]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1effe2)[0x7f74d7b7bfe2]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base10with_scope16_42e4eeeae78c8643_06E+0x56e)[0x7f74d7b3910e]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans6callee16trans_call_inner17_c39d6d201e1eca503_06E+0xc2)[0x7f74d7b6c182]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans6callee17trans_method_call17_4be16fc4341e49e93_06E+0x1fa)[0x7f74d7b6c4aa]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x1fd2d3)[0x7f74d7b892d3]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4expr10trans_into16_54d763e594233573_06E+0xe97)[0x7f74d7aeb6c7]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base10init_local15_3c07168daf987d3_06E+0x65f)[0x7f74d7bee32f]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x26461b)[0x7f74d7bf061b]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base10trans_stmt17_2c2aa18584fe5be63_06E+0x5ae)[0x7f74d7aea3fe]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x15d43c)[0x7f74d7ae943c]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans11controlflow11trans_block16_a4e9a67bdd72ccb3_06E+0x19e)[0x7f74d7ae7bae]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b8b34)[0x7f74d8244b34]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base13trans_closure17_85d646a672f846683_06E+0x50e)[0x7f74d7bf96ee]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base8trans_fn17_fe1e7f81b93e452d3_06E+0x3b9)[0x7f74d7aa1449]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4meth12trans_method17_bea14be21fcde8563_06E+0x40d)[0x7f74d7adf21d]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x2e768d)[0x7f74d7c7368d]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4meth10trans_impl16_fe66dbbe5a7fa333_06E+0x14e)[0x7f74d7c0001e]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base10trans_item16_ed7df62f5f126563_06E+0x69d)[0x7f74d7a98a2d]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base9trans_mod17_33f95ffa6ea6f19d3_06E+0xa3)[0x7f74d7c00263]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base10trans_item16_ed7df62f5f126563_06E+0x46e)[0x7f74d7a987fe]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base9trans_mod17_33f95ffa6ea6f19d3_06E+0xa3)[0x7f74d7c00263]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6middle5trans4base11trans_crate15_aa5d2b86af98143_06E+0x13c4)[0x7f74d7c1ff14]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x87a290)[0x7f74d8206290]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6driver6driver12compile_rest17_b2b258b84b35f3533_06E+0x331e)[0x7f74d820329e]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b8b34)[0x7f74d8244b34]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6driver6driver12compile_upto17_12335154b455986e3_06E+0x108)[0x7f74d82064a8]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b8b34)[0x7f74d8244b34]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN6driver6driver13compile_input15_bb29edf7a232863_06E+0xca)[0x7f74d82068ea]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN12run_compiler17_64d52739a36d169c3_06E+0x20aa)[0x7f74d8235fca]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b6601)[0x7f74d8242601]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b2e2c)[0x7f74d823ee2c]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b8b34)[0x7f74d8244b34]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(+0xce08e)[0x7f74d924708e]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(+0x14dcb4)[0x7f74d92c6cb4]
/usr/lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x24)[0x7f74d6076e64]
rust: task failed at 'explicit failure', /build/src/rust-0.6/src/librustc/rustc.rc:357
/usr/lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f74d607664b]
/usr/lib/librustrt.so(+0x2a189)[0x7f74d6087189]
/usr/lib/librustrt.so(upcall_fail+0x198)[0x7f74d60783a8]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(+0x1055db)[0x7f74d927e5db]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(+0x105582)[0x7f74d927e582]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(_ZN3sys12begin_unwind17_61fe198059b9e3fc3_06E+0x71)[0x7f74d91c6651]
/usr/lib/libcore-c3ca5d77d81b46c1-0.6.so(+0x14dcb4)[0x7f74d92c6cb4]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN7monitor17_78935df9ff9e1afa3_06E+0x1577)[0x7f74d82385f7]
/usr/lib/librustc-c84825241471686d-0.6.so(+0x8b8b34)[0x7f74d8244b34]
/usr/lib/librustc-c84825241471686d-0.6.so(_ZN4main15_c4de63b748e03d3_06E+0x7e)[0x7f74d824474e]
/usr/lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x24)[0x7f74d6076e64]
rust: domain main @0x23743c0 root task failed
make: *** [engine-code] Error 101

Activity

  1. kvark commented on Apr 15, 2013

    @kvark
    ContributorAuthor

    I was able to procude a simple testcase:
    trait Curve {}
    enum E {X(Curve)}
    fn main() {}

    Now I see why this is wrong, it would be nice to have a proper error message for this case.

  2. euphoris commented on Apr 28, 2013

    @euphoris

    a similar case:

    struct Struct {
        r: io::Reader
    }
    
    fn new_struct(r: io::Reader) -> Struct {
        Struct { r: r }
    }
    
  3. nikomatsakis commented on Apr 30, 2013

    @nikomatsakis
    Contributor

    Can you re-test this with incoming? That particular ICE is no longer
    relevant, but there may be some similar bug that occurs.

  4. catamorphism commented on Jul 17, 2013

    @catamorphism
    Contributor

    This is fixed. Added a test case in #7863 -- this can close when it lands.

  5. catamorphism commented on Sep 23, 2013

    @catamorphism
    Contributor

    Forgot to close this. Closing now.

  6. added a commit that references this issue on Aug 11, 2020
  7. added a commit that references this issue on Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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