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

    <tr>
        <th>Summary</th>
        <td>
            [clang] Nonsensical warning for out-of-bounds access to vector type
        </td>
    </tr>

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

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

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

<pre>
    https://godbolt.org/z/7s9cqq5xG:
```cpp
int f(int __attribute__((vector_size(8))) v) {
  return v[~0UL/8];
}
```
```
<source>:2:10: warning: array index 2305843009213693951 refers past the last possible element for an array in 64-bit address space containing 64-bit (8-byte) elements (max possible 2305843009213693952 elements) [-Warray-bounds]
    2 |   return v[~0UL/8];
 |          ^ ~~~~~~
<source>:1:7: note: array 'v' declared here
    1 | int f(int __attribute__((vector_size(8))) v) {
      |       ^
1 warning generated.
Compiler returned: 0
```
The warning makes no sense given that the index represents 4-byte elements and that the limit is known statically to be `2`. For smaller out-of-bounds indices there is no warning at all. (GCC provides a correct warning in all cases with `-Warray-bounds`.)

Adapted from https://github.com/llvm/llvm-project/issues/154713, but this issue is present since Clang 13.0.0.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVEGP6yYQ_jWTyygWhmA7Bx-82Zd3qXpq1eMK43FCl4Af4OzuO7zfXuFkkzZPqlSpCBlkhplvvm8YFaM5OKIW5BPI55Wa09GH9pWMG-1Mq94PH-0xpSmC6IDvge8Pfui9TYUPB-D778D3ddzqb9_k-9dswzqo2GXqaQLWGZdwBN7k9eVFpRRMPyd6eQHeAG_OpJMPL9F8J-BNA3x7mXjOH6ifgHWIgdIcHJ5BPv1gv_8CfN-AfAaRT6F-_nvUx73YRT8HTSC-gOg4iK5kIDp8U8EZd8hbFYL6QOMGekcumGw2grEtL0W1FVtZYqCRQsRJxYTpSGjzZvIxmt4SkqUT5SR9QOVuzrDarHuTUA1DoBgxTkoTau-SMjnw53nOet1_JMr5Xn3F_Pek3u9BfobFb8YLUfJp_ccSet372Q0x05OZQ-QI9Q7_ncOryXWA_II_lvEzgSWIrs6kOZ_oTh7w-gy8xoG0VYEGPFKgK4By8f6_1MGC7gYV5BdgXfkpJR7IUVCJhgJYt_OnyVgK17xpyGAfq-O3I91un9QrRXQeI7lIeDBncpiO6qL5pToCTYHiotBmEe2umHLD3dqak0loIr46_-YwJpWMVtZ-YPLYE0LFOFSswL0PGE_KZqB-Tms_XvXLAY2mmN0Fyq6cv0FVCZW1Ra6Sr7sdTsGfzUARFWofAul0szQuW6JWkSK-mXTMoR8qpWJF5prlx9sNako04Bj8CR8evknHuS-0PwHfW3v-XNZT8H-STsD3JsaZIvB9KTd1KYDvsJ8zIybicpbzuDKI0ThNuLPKHbAUBStYsRpaMWzFVq2oLWtZlVXNy3p1bMemZpzJjWTVpmZclZJ4VTKhhZCVYPXKtJxxyRpeMVYKURdNrUfWlOM4kuwHOcCG0UkZW2TIuXmtFkBtKaXg25VVPdm4tEHOdcYEnOeOGNolx34-RNgwa2KKdxfJJLv0zssN-Yy_epfLJ4t90yA3hn9qq7TOLSF5vJQ9po-JVnOwj732P1G-JHJu-V8BAAD__xh2z5g">