2012-03-26 18:25:29 -05:00
|
|
|
// error-pattern:fail
|
|
|
|
|
|
|
|
fn failfn() {
|
|
|
|
fail;
|
|
|
|
}
|
|
|
|
|
2012-08-15 20:46:55 -05:00
|
|
|
struct r {
|
2012-09-06 21:40:15 -05:00
|
|
|
v: *int,
|
2012-11-14 00:22:37 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
impl r : Drop {
|
2012-11-28 17:42:16 -06:00
|
|
|
fn finalize(&self) {
|
2012-11-14 00:22:37 -06:00
|
|
|
unsafe {
|
|
|
|
let _v2: ~int = cast::reinterpret_cast(&self.v);
|
|
|
|
}
|
|
|
|
}
|
2012-03-26 18:25:29 -05:00
|
|
|
}
|
|
|
|
|
2012-09-05 17:58:43 -05:00
|
|
|
fn r(v: *int) -> r {
|
|
|
|
r {
|
|
|
|
v: v
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-03-26 18:25:29 -05:00
|
|
|
fn main() unsafe {
|
|
|
|
let i1 = ~0;
|
2012-09-18 19:34:08 -05:00
|
|
|
let i1p = cast::reinterpret_cast(&i1);
|
2012-09-19 00:55:21 -05:00
|
|
|
cast::forget(move i1);
|
2012-03-26 18:25:29 -05:00
|
|
|
let x = @r(i1p);
|
|
|
|
failfn();
|
|
|
|
log(error, x);
|
2012-11-14 00:22:37 -06:00
|
|
|
}
|