Hi,
clang currently will not check logical-op-parentheses in macros, it will just skip the checking. And @dexonsmith gave us the explanation
There were two commits with this radar: r119537 and r119540. The main motivation was a deeply nested macro that when "inlined" included the moral equivalent of #define DOUBLE_OP(OP1, OP2, X, Y, Z) (X OP1 Y OP2 Z). There was terrible note spew when the warning fired in this case, and the use case for the macro made the warning un-actionable. We decided to suppress the warning entirely:
However, sometimes we indeed need the parentheses checking in macros. So, we make the parentheses checking smarter. For details, see my test cases : )
Thanks for reviewing :)
LogicalOpParenthesesInMacros should be in LogicalNotParentheses group.