<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120867>120867</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] Ignore `modernize-use-integer-sign-comparison` between signed wide type and unsigned narrow type
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zufuliu
</td>
</tr>
</table>
<pre>
For following code (online at https://godbolt.org/z/evGzzTdb7), I'd like the checker emits no warnings for `foo1` and `foo2` (the narrow `y` implicitly promoted to `int`), also `bar1` missed the warning even with `-fsigned-char`.
```c++
bool foo1(int x, unsigned char y) {
return x == y;
}
bool foo2(int x, unsigned short y) {
return x == y;
}
bool bar1(unsigned int x, char y) {
return x == y;
}
bool bar2(unsigned int x, short y) {
return x == y;
}
```
current output:
```console
[<source>:2:12: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]](javascript:;)
1 | bool foo1(int x, unsigned char y) {
2 | return x == y;
| ^ ~~
| std::cmp_equal( , )
[<source>:5:12: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]](javascript:;)
5 | return x == y;
| ^ ~~
| std::cmp_equal( , )
[<source>:11:12: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]](javascript:;)
11 | return x == y;
| ^ ~~
| std::cmp_equal( , )
3 warnings generated.
```
CC @qt-tatiana as author of the checker (PR #113144).
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVU-P27YT_TTjy8CGNNQ_H3TwruMfcvuh6L2gpJHEhCIdklrHPuSzF5S93m2yaLtFUcQgbIkz8_TmacwnvVeDYa4hf4B8v5JzGK2rL3M_azWvGtud64N12Fut7UmZAVvbMQJV1mhlGGXAMYSjB7EDOgAdBts1VoeNdQPQ4QJ04Kf_XS6_dk0JtAV6xI9AZYdafWYMI2M7cvuZHfKkgkdj8SSdUWbw2FuHUCS9tSkUCUrT3W4p3gJVsdxI5-wpBs5xV01HrVoV9BmPzk42cIfBxrAyAYrkxkFqv2w20i3Yk_I-Zo78_HjkJzZ4UmGMeet-0albt6N0UCQbSHYRbVkt0ENcya6xVuPClyplAn6Nz5rNtRZjLZ6BtghlzEZEdBxmZ_ArgtiD2OMZRAxBuX8FR2_C-dG68H68pWWq7jB34H9Gr5GO3oR7P727oPE62bWzc2wC2jkc5xAH7LXm1nirOW7lDyAevZ1dyyA-gNgRiF0av57fZbxs7XSUTnlrsOFwYjYIVF5JA5XX6aLyuY-4pUzggZ1HyB8m27Ez6sLr2fP6FlnH3PULMuT7uKj6JJ-kb506LrTFQ5y6ZIcpQvmI7x8SWur-RL97_PaB_AN--4Z4q8fv4z50C7FdOx1_4y-z1EAVRh5Xpj9qmv-smiJi_pfyvKXBv69Rmv68IqXX2fsvBRIvJ_nAhp0M3G1-_Js_PiJkyZewDjIoaSRKj1cbQtv_wSGAqv__gkAiTUWaZUDbzaqrRbcVW7niOi1FVolKpOlqrLddRr3MCuqpT9KiK5ttw2nWymJbdly0K1VTQllKRIkQaZ5uZFnk27LsUxZVXvQCsoQnqfRG66cp2tlKeT9znVJSFeVKy4a1X3yTqNXSDOugujMQRR91daxaN_PgIUu08sG_4AQV9OK4r8ryPX4cjHUc3ebvvfMiuQ_U7ew4qY4xnI-8DNX9SLlZZAysZqfr7wxbhXFuNq2dgA6R4-1nfXT2E7cB6LA07oEOt96favo9AAD__8oHc0Q">