The following code triggers a signed unsigned comparison warning:
uint16 x = 5;if(((x) & (uint16)0x0001u) > 0u) {...}
Replacing the if with this eliminates the warning:
if(((x) & (uint16)0x0001u) > (uint8)0u) {...} //No warning
Shouldn't 0u become an unsigned integer and not trigger this warning to begin with?