get profile.dev (-debug-assertions) + LTO working

This commit is contained in:
Jorge Aparicio
2016-10-07 10:17:44 -05:00
parent c9e3feb5e3
commit a02ecc8eef
6 changed files with 76 additions and 30 deletions

View File

@@ -13,6 +13,66 @@
// NOTE cfg(all(feature = "c", ..)) indicate that compiler-rt provides an arch optimized
// implementation of that intrinsic and we'll prefer to use that
macro_rules! udiv {
($a:expr, $b:expr) => {
unsafe {
let a = $a;
let b = $b;
if b == 0 {
intrinsics::abort()
} else {
intrinsics::unchecked_div(a, b)
}
}
}
}
macro_rules! sdiv {
($sty:ident, $a:expr, $b:expr) => {
unsafe {
let a = $a;
let b = $b;
if b == 0 || (b == -1 && a == $sty::min_value()) {
intrinsics::abort()
} else {
intrinsics::unchecked_div(a, b)
}
}
}
}
macro_rules! urem {
($a:expr, $b:expr) => {
unsafe {
let a = $a;
let b = $b;
if b == 0 {
intrinsics::abort()
} else {
intrinsics::unchecked_rem(a, b)
}
}
}
}
macro_rules! srem {
($sty:ty, $a:expr, $b:expr) => {
unsafe {
let a = $a;
let b = $b;
if b == 0 || (b == -1 && a == $sty::min_value()) {
intrinsics::abort()
} else {
intrinsics::unchecked_rem(a, b)
}
}
}
}
#[cfg(test)]
#[macro_use]
extern crate quickcheck;