I\'ve encountered a warning that I don\'t really understand. The warning is generated by comparing what I consider to be one unsigned with another unsigned.
Here is
I had the same problem and I worked around it by using an intermediate variable:
uint8_t check = ~arr[2];
if (arr[3] != check)
Yes I think its a bug. Read [Bug c/38341] Wrong warning comparison of promoted ~unsigned with unsigned and also Why, warning: comparison between signed and unsigned integer expressions?. This might help you.