<div>For code such as:</div><div><br></div><div>void f(unsigned int u, int i) {</div><div> (void) (true ? u : i);</div><div>}</div><div><br></div><div>When run with -Wsign-compare, Clang gives the following warning.</div>
<div><br></div><div><div>warning: operands of ? are integers of different signs:</div><div> 'unsigned int' and 'int' [-Wsign-compare]</div><div> (void) (true ? u : i);</div><div> ^ ~ ~</div>
</div><div><br></div><div>Yet, no comparison is going on between u and i, so the warning seems out of place for grouping with -Wsign-compare. I think that it would be better is this warning was pulled out of the -Wsign-compare diagnostic group. Also, gcc's -Wsign-compare does not warn on this code, so this change will make Clang's sign compare closer to gcc's. Does this seem reasonable?</div>