31 lines
508 B
Rust
31 lines
508 B
Rust
// run-fail
|
|
// error-pattern:complex called
|
|
// error-pattern:dropped
|
|
// error-pattern:exit
|
|
// ignore-emscripten no processes
|
|
|
|
struct Droppable;
|
|
impl Drop for Droppable {
|
|
fn drop(&mut self) {
|
|
eprintln!("dropped");
|
|
}
|
|
}
|
|
|
|
// return value of this function is copied into the return slot
|
|
fn complex() -> u64 {
|
|
eprintln!("complex called");
|
|
42
|
|
}
|
|
|
|
|
|
fn mir() -> u64 {
|
|
let x = Droppable;
|
|
return complex();
|
|
drop(x);
|
|
}
|
|
|
|
pub fn main() {
|
|
assert_eq!(mir(), 42);
|
|
panic!("exit");
|
|
}
|