Fix Wbitwise-instead-of-logical warnings `a || b` only evaluates b if a is false. `a | b` always evaluates both a and b. If a and b are of type bool, || is usually what you want, so clang now warns on `|` where both arguments are of type bool. This warning fires twice in harfbuzz. In both cases, `|` is used intentionally, with a comment explaining this. Slightly reorder the code a bit to make the compiler happy, and to make it obvious even without a comment that both calls should be evaluated. No intended behavior change.