On macOS, BOOL is a typedef for signed char, but it should never hold a value that isn't 1 or 0. Any code that expects a different value in their BOOL should be fixed. See also D63856.
rdar://problem/51954400 ObjC: Add diagnostics to catch incorrect usage of BOOL