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

    <tr>
        <th>Summary</th>
        <td>
            [clang] can't compile stl container with a __restrict pointer in C++ 23 mode
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    problem goes away as soon as the __restrict qualifier is removed. compiles with GCC and MSVC
https://godbolt.org/z/v8o1xsna6

minimal example:
```c++
#include <vector>

void test()
{
 std::vector<void *__restrict> testvec;
}
```
other output elided:
```
error: no matching function for call to 'operator delete'
note: candidate function not viable: no known conversion from 'void *__restrict *' to 'void *' for 1st argument; dereference the argument with *
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkU0FvozoQ_jXmMmoEdgLkwCFNmnd6pye9a2XsAbxrbNYeSLu_fmVI1G4rWVjjYb5vvtF8MkbTO8SGHZ7Z4ZLJmQYfGjfP2o7SZa3X780UfGtxhN5jBHmT7yAjRO9dumlAeH0NGCkYRfBrltZ0BgOYCAFHv6DegfLjZCxGuBka4J_zGaTT8O9__59ZfmH5aSCaIhMnxq-MX3uvW29p50PP-PU349el9sVbdLLcft--o3FmlBbwTY6TxVS-Zct8O4rx53S2Vy6MU3bWCEycF1TkAxMvnwEXbzQQRmK8Zvx4T1V3AIikE4c4PYrPawHjpw_9TLysCAsqJh7M1eVLY1voacAAfqZpJkBrNOrvGrYQQ0iEJ3AeRklqMK6HbnaKjHfQ-QBKWgvkgfHKTxgk-QAaLRIyXm0gzlMaEijptNGS8APBeYLFyHadYiL56fzNgfJuwRBXjuDHBP5dcooYr-7kj3x6SX0VkUCGfh7RERPPoDFghwGdwnV1HrltM1Lh3_oz3Qh9FEeZYVOUdb3fC36ss6HJRae7rmjznOcoOFYS20NXSVUWZb1vq8w0POcir_J9vs8LUe9yWXRci5ZXspYFb9k-x1Eau7N2GdOyZSbGGZtSlCXPrGzRxtUXnDu8wZpknCebhCbVPLVzH9k-tyZS_EAhQ3Y1lLLS9exwSRNnvKKHDSCSTbMlaRyGTbn8bKLJG0fJQg7O2w4DFzB6jdkcbPPFLYaGud0pPzJ-TU3cr6cp-B-oiPHr2npk_LpK-xMAAP__NLA9fg">