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

    <tr>
        <th>Summary</th>
        <td>
            -Wtautological-compare should flag tautological pointer bounds checks
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:diagnostics
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          nikic
      </td>
    </tr>
</table>

<pre>
    `-Wtautological-compare` should report pointer "bounds checks" patterns that are always true/false because unsigned pointer arithmetic cannot overflow.

```
bool test1(const char *ptr, size_t index) {
  return ptr + index < ptr; // always false
}

bool test2(const char *ptr, size_t index) {
  return ptr + index >= ptr; // always true
}
```

These two are fine though:

```
bool test3(const char *ptr, ssize_t index) {
  return ptr + index < ptr; // unknown
}

bool test4(const char *ptr, ssize_t index) {
  return ptr + index >= ptr; // unknown
}
```

Idea from https://github.com/llvm/llvm-project/pull/118472#issuecomment-2548141458.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyslNFq4zgUhp9GvjkkWEeKk1z4Imk3sPcLe7nI8omtrSIZ6ajZ7tMPdqeZlskMDFMQGGxZ_3c--GVydkMgasXmKDaPlSk8xtQG9-Rs1cX-pRVNvfqbTeHo4-Cs8SsbL5NJJJoa8hiL7yHRFBPDFF1gSiAQu1hCn8GOZJ-yQITJMFMKGXg0DCYRGH81Lxk4FRJ4OhufCTqypmSCEhas_nakSY7HC7GzYE0IkSE-Uzr7eF2L-jCvpv666kMXowemzFLgzsaQGexoZq7DxEngA2T3P_3D4EJP_wncg9geRX0ASMQlBZh43nx8_Q5CPcxvhDqCwJPA0xv6wjxnbx9fIW7B-EnBfwj1eD970XaLfje8qA9_jZQJ-BoXz2cXCHiMZRiFOvzElvoh9G_qKuEpxGu4a0p_VugdVd_lftT0Z08GzileYGSe8ixn-W9wPJZubeNF4Mn757fHakrxX7Is8DQV7wWepNzpLQpULudCNl4uFHiFG72TWurNbl31rer3am8qauVWaa20bppqbDtDsjnTpre12uiuIdN3O6VquVd9t9_ryrVYo5Yot1KirJs1Yq8aNHbTo6SzRqFruhjn1zPaOqahWiBaiTVKXXnTkc9LrRGtN2EQ6tA7M4SY2dm5k3PfU7tM1pUhC117lzl_O5Ade2rvt_-t-mdvBni_4VbZD1dAVZJvf1nzMlGeRb8O9dzilwAAAP__Oth7CA">