|
@@ -0,0 +1,17 @@
|
|
|
+//! assert implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/assert.h.html
|
|
|
+
|
|
|
+use c_str::CStr;
|
|
|
+use core::fmt::Write;
|
|
|
+use header::{stdio, stdlib};
|
|
|
+use platform;
|
|
|
+use platform::types::*;
|
|
|
+
|
|
|
+#[no_mangle]
|
|
|
+pub unsafe extern "C" fn __assert(func: *const c_char, file: *const c_char, line: c_int, cond: *const c_char) {
|
|
|
+ let func = CStr::from_ptr(func).to_str().unwrap();
|
|
|
+ let file = CStr::from_ptr(file).to_str().unwrap();
|
|
|
+ let cond = CStr::from_ptr(cond).to_str().unwrap();
|
|
|
+
|
|
|
+ write!(*stdio::stderr, "{}: {}:{}: Assertion `{}` failed.\n", func, file, line, cond).unwrap();
|
|
|
+ stdlib::abort();
|
|
|
+}
|