<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/127471>127471</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] False negative modernize-use-integer-sign-comparison without cast?
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          chrchr-github
      </td>
    </tr>
</table>

<pre>
    ~~~c++
#include <vector>

bool f(int i, const std::vector<int>& v) {
    return i >= v.size();
}
bool g(int i, const std::vector<int>& v) {
    return i >= static_cast<int>(v.size()); // warning
}
bool h(int i, const std::vector<int>& v) {
    return static_cast<std::size_t>(i) >= v.size();
}

int main() {
    return f(-1, {});
}
~~~
~~~
<source>:7:12: warning: comparison between 'signed' and 'unsigned' integers [modernize-use-integer-sign-comparison]
    1 | #include <vector>
    2 | 
    3 | bool f(int i, const std::vector<int>& v) {
    4 |     return i >= v.size();
    5 | }
    6 | bool g(int i, const std::vector<int>& v) {
    7 |     return i >= static_cast<int>(v.size());
 |            ^ ~~~~~~~~~~~~~~~~~~~~         
      | std::cmp_greater_equal( ,      )
1 warning generated.
~~~
I wonder if the observed behavior is intentional (warning only for `g()`, but not for `f()` and `h()`).
https://godbolt.org/z/8GWMrh781
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyslU9v8zYMxj8NcyES2FQc2Qcf3ObNsMPOOxayxdgaHKmT5BTtIZ99kPOvfbcOBd4aQQKb5MMflUeyCsH0lrmG4gGK7UJNcXC-7gbfDX7ZmzhM7aJ1-rU-nU4d0EP6ZA2QMLYbJ80I4vHIXXQexI8UyZrWuRH3QKWxEQ3QI3bOhoghahANiOaa_2hsTFW0wSNQhSCTNiKi5zh5iwZTWGzxuArmjYFKoArETCC311b9t7YKUUXTPXUqxHdl5QeCGQKBdkA7fFHeGtt_ZBq-g-kjyq0-gTxdsMxc-P-LBFmTUA7K2HPw353Sv7XME2sKye1PCqfT6fadSNzkO567NhJEkxOI5rYOosHOHZ6VN8FZbDm-MFsEkrPTNJBEZXV6MNn7I2Mj9-wDQvFwcJq9NW-8nAIvL5Flyl3elaHYXmbIEeQjfm7JlEPnnPONmG--wabrWehrhk1ZxZlCXsk3d5BfM7H8FOTLdk5KV5HLBcUPPP3HdU84d8e58IbbHZ6fes8qsn_ivyc1ApWYxjqnUgVZk1_tgj1b9iqyXt0s9ju-OKvZo9ljHBhdG9gfWWPLgzoa59GE2TA2GmfViEDlVc7Z8RX3ziNssv4y3yZL3dsponXxGtzfgmc7brLhXXqVaIYYn0Oaad7ovdOtG-PK-R5o9wa0K3_78w8_yDJf6FroSlRqwXUuRSXLai2KxVC3VVUR560WRd5KWdFaZ3mZadaiKKWihakpoyKjXOZZkYliRUrnm71oOa82hWKGdcYHZcbVOB4PqffChDBxnZNcy3wxqpbHMJ_eRN2obL-MRr8CUTrNfZ2qlu3UB1hnowkx3HWiieN87r8rK7a4U2NgtNyraI6MX9qL-GLi4KaIZ5vtFpMf659Wb36VrDp3ANolhsvP8tm7v7iLQLt5sAC0u8x2rOmfAAAA___DZPR5">