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 on 'Unexpected type returned from struct_tail' #26076

Closed
GuillaumeGomez opened this issue Jun 7, 2015 · 2 comments
Closed

ICE on 'Unexpected type returned from struct_tail' #26076

GuillaumeGomez opened this issue Jun 7, 2015 · 2 comments

Comments

@GuillaumeGomez
Copy link
Member

Here is the error:

error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
thread 'rustc' panicked at 'Unexpected type returned from struct_tail: (for<'r,'r,'r> core::ops::FnMut(&'r widgets::tree_model::TreeModel, &'r widgets::tree_iter::TreeIter, &'r widgets::tree_iter::TreeIter, *mut libc::types::common::c95::c_void), *mut libc::types::common::c95::c_void) for ty=(for<'r,'r,'r> core::ops::FnMut(&'r widgets::tree_model::TreeModel, &'r widgets::tree_iter::TreeIter, &'r widgets::tree_iter::TreeIter, *mut libc::types::common::c95::c_void), *mut libc::types::common::c95::c_void)', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/librustc_trans/trans/type_of.rs:354

stack backtrace:
   1:     0x7f3e757c5733 - sys::backtrace::write::h8f69c25b82e602958cs
   2:     0x7f3e757cd669 - panicking::on_panic::hfa966c25addcbd02XXw
   3:     0x7f3e7578dcfa - rt::unwind::begin_unwind_inner::h75eec641d76d2f34HDw
   4:     0x7f3e7578ea97 - rt::unwind::begin_unwind_fmt::hc239ae9d69c6846fNCw
   5:     0x7f3e7453ce81 - trans::type_of::in_memory_type_of::h3ecebb4824b43e04W4L
   6:     0x7f3e74606194 - trans::type_of::type_of_rust_fn::h607dc640440350a7FSL
   7:     0x7f3e745497bb - trans::declare::declare_rust_fn::h4800aa8c001370c2QaA
   8:     0x7f3e7456d757 - trans::base::register_fn::h9adaa07e7fa9572ajFi
   9:     0x7f3e7456888c - trans::base::get_item_val::heee81e685884b3511Ri
  10:     0x7f3e74564d86 - trans::base::trans_item::hf26865b4e5e5e2a9Kti
  11:     0x7f3e745656f8 - trans::base::trans_item::hf26865b4e5e5e2a9Kti
  12:     0x7f3e745656f8 - trans::base::trans_item::hf26865b4e5e5e2a9Kti
  13:     0x7f3e74572b02 - trans::base::trans_crate::h174636cd97c01262Wij
  14:     0x7f3e75d22cb4 - driver::phase_4_translate_to_llvm::h1e3de5efb53bc87ezOa
  15:     0x7f3e75cfe396 - driver::compile_input::hda494d426ffc5b8bQba
  16:     0x7f3e75db3cc1 - run_compiler::hd539ddde81e1e162n6b
  17:     0x7f3e75db1512 - boxed::F.FnBox<A>::call_box::h2241471336346299975
  18:     0x7f3e75db0d19 - rt::unwind::try::try_fn::h1392995902660742682
  19:     0x7f3e758464e8 - rust_try_inner
  20:     0x7f3e758464d5 - rust_try
  21:     0x7f3e757b8ee7 - rt::unwind::try::inner_try::hfac58a0de8636543Azw
  22:     0x7f3e75db0f39 - boxed::F.FnBox<A>::call_box::h9914386528590371672
  23:     0x7f3e757cc321 - sys::thread::Thread::new::thread_start::h5dbb55e110740b5cMJv
  24:     0x7f3e6f7b3181 - start_thread
  25:     0x7f3e7540d47c - __clone
  26:                0x0 - <unknown>

Could not compile `gtk`.

Here is the file and here is the code.

@arielb1
Copy link
Contributor

arielb1 commented Jun 8, 2015

Duplicate of #24957.

@GuillaumeGomez
The problem is that you have

data: &mut (FnMut(&::TreeModel, &::TreeIter, &::TreeIter, *mut c_void), *mut c_void)

The first element of this tuple is the trait object FnMut, which is unsized. All fields of an ADT but the last must be sized (tuples and enums don't allow even the last field to be unsized, but that is another matter). What are you trying to do?

@GuillaumeGomez
Copy link
Member Author

Passing a closure through C callback. I was testing different possibilities and the last one got an ICE.

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

No branches or pull requests

3 participants