about summary refs log tree commit diff
path: root/src/libcore/rt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcore/rt.rs')
-rw-r--r--src/libcore/rt.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libcore/rt.rs b/src/libcore/rt.rs
index 357c3fba744..4ec6accf634 100644
--- a/src/libcore/rt.rs
+++ b/src/libcore/rt.rs
@@ -39,6 +39,12 @@ fn rt_fail(expr: *c_char, file: *c_char, line: size_t) {
     rustrt::rust_upcall_fail(expr, file, line);
 }
 
+#[rt(fail_)]
+fn rt_fail_(expr: *c_char, file: *c_char, line: size_t) {
+    cleanup_stack_for_failure();
+    rustrt::rust_upcall_fail(expr, file, line);
+}
+
 #[rt(exchange_malloc)]
 fn rt_exchange_malloc(td: *c_char, size: uintptr_t) -> *c_char {
     return rustrt::rust_upcall_exchange_malloc(td, size);