08d3fbc76b
Fixes #658 This commit adds support for unwinding after a panic. It requires a companion rustc PR to be merged, in order for the necessary hooks to work properly. Currently implemented: * Selecting between unwind/abort mode based on the rustc Session * Properly popping off stack frames, unwinding back the caller * Running 'unwind' blocks in Mir terminators Not yet implemented: * 'Abort' terminators This PR was getting fairly large, so I decided to open it for review without implementing 'Abort' terminator support. This could either be added on to this PR, or merged separately.
12 lines
195 B
Rust
12 lines
195 B
Rust
//error-pattern: the evaluated program aborted
|
|
struct Foo;
|
|
impl Drop for Foo {
|
|
fn drop(&mut self) {
|
|
panic!("second");
|
|
}
|
|
}
|
|
fn main() {
|
|
let _foo = Foo;
|
|
panic!("first");
|
|
}
|