diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-05-17 17:53:50 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-05-17 17:53:50 -0700 |
| commit | 03a8e59615f7ced4def8adaad41cfcb0fd0f9d29 (patch) | |
| tree | 560956d27a7945a464d8d8ec742be4ea5fbecb69 /src/libcore/macros.rs | |
| parent | 2d28d645422c1617be58c8ca7ad9a457264ca850 (diff) | |
| parent | 018dfaf9a6a25f5dba0ac642ff6c426c549bc4d7 (diff) | |
| download | rust-03a8e59615f7ced4def8adaad41cfcb0fd0f9d29.tar.gz rust-03a8e59615f7ced4def8adaad41cfcb0fd0f9d29.zip | |
Merge remote-tracking branch 'brson/io' into incoming
Diffstat (limited to 'src/libcore/macros.rs')
| -rw-r--r-- | src/libcore/macros.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/libcore/macros.rs b/src/libcore/macros.rs index b19a753b715..fda48b6ffb7 100644 --- a/src/libcore/macros.rs +++ b/src/libcore/macros.rs @@ -30,10 +30,24 @@ macro_rules! rtdebug ( ($( $arg:expr),+) => ( $(let _ = $arg)*; ) ) +macro_rules! rtassert ( + ( $arg:expr ) => ( { + if !$arg { + abort!("assertion failed: %s", stringify!($arg)); + } + } ) +) + macro_rules! abort( ($( $msg:expr),+) => ( { rtdebug!($($msg),+); - unsafe { ::libc::abort(); } + do_abort(); + + // NB: This is in a fn to avoid putting the `unsafe` block in a macro, + // which causes spurious 'unnecessary unsafe block' warnings. + fn do_abort() -> ! { + unsafe { ::libc::abort(); } + } } ) ) |
