fix f64 tcc eq crash

pull/2347/head
Alexander Medvednikov 2019-10-13 04:27:57 +03:00
parent ae3ec380f8
commit 91690a1b54
1 changed files with 15 additions and 7 deletions

View File

@ -28,18 +28,26 @@ pub fn ptr_str(ptr voidptr) string {
// compare floats using C epsilon
// ==
pub fn (a f64) eq(b f64) bool {
$if tinyc {
return a -b <= 0.01
$if windows {
$if tinyc {
return a -b <= 0.01
} $else {
return C.fabs(a - b) <= C.DBL_EPSILON
}
} $else {
return C.fabs(a - b) <= C.DBL_EPSILON
return C.fabs(a - b) <= C.DBL_EPSILON
}
}
pub fn (a f32) eq(b f32) bool {
$if tinyc {
return a -b <= 0.01
$if windows {
$if tinyc {
return a -b <= 0.01
} $else {
return C.fabs(a - b) <= C.DBL_EPSILON
}
} $else {
return C.fabsf(a - b) <= C.FLT_EPSILON
}
return C.fabs(a - b) <= C.DBL_EPSILON
}
}
pub fn (a f64) eqbit(b f64) bool {
return C.DEFAULT_EQUAL(a, b)