diff --git a/vlib/builtin/cfns.c.v b/vlib/builtin/cfns.c.v index c20bf0198f..31e49c7cac 100644 --- a/vlib/builtin/cfns.c.v +++ b/vlib/builtin/cfns.c.v @@ -482,3 +482,6 @@ fn C.glTexImage2D() // used by ios for println fn C.WrappedNSLog(str &u8) + +// absolute value +fn C.abs(number int) int diff --git a/vlib/v/checker/check_types.v b/vlib/v/checker/check_types.v index 1d8f8929dd..4f5fd0feac 100644 --- a/vlib/v/checker/check_types.v +++ b/vlib/v/checker/check_types.v @@ -19,6 +19,10 @@ pub fn (mut c Checker) check_types(got ast.Type, expected ast.Type) bool { if expected == ast.voidptr_type { return true } + if expected == ast.bool_type && (got.is_any_kind_of_pointer() || got.is_int()) { + return true + } + if expected.is_any_kind_of_pointer() { //&& !got.is_any_kind_of_pointer() { // Allow `int` as `&i8` etc in C code. deref := expected.deref()