Repro: ``` pub trait Widget {} pub trait Container { fn remove(&mut self, widget: &Widget) -> Box<Widget>; } pub struct BoxLayout { children: Vec<Box<Widget>>, } impl Container for BoxLayout { fn remove(&mut self, widget: &Widget) -> Box<Widget> { let index = self.children.iter().position(|elem| { (&**elem as *const _) == (widget as *const _) }); panic!(); } } fn main(){} ``` Backtrace: unable to acquire; rustc dies with SIGILL inside the unwinder. Assertion: ``` thread 'rustc' panicked at 'assertion failed: self.appropriate_rvalue_mode(bcx.ccx()) == ByValue', src/librustc_trans/trans/datum.rs:634 ```
Activity
mitaa commentedon Jun 22, 2015
dup of #25768 (see rust-lang/rfcs#1135)