Instead, recommend using a real boolean type. Its possible to get away with BOOL:1, if you only read from it in a context where its contextually converted to bool, but its still broken if you, for instance, store it into a BOOL variable or try to compare it with another BOOL. Given that, I don't think there is any good reason to use it when there are better alternatives available.
rdar://29707989