<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/66612>66612</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang frontend C++ crash with atomic constraints
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
brutalsavage
</td>
</tr>
</table>
<pre>
To quickly reproduce: https://gcc.godbolt.org/z/Gc1Y17PKf (assertion-trunk)
```cpp
#include <concepts>
#include <iostream>
template <typename T>
concept Iterator = requires(T a) {
{ a } -> std::same_as<T>;
};
template <typename T>
concept Container = requires(T a) {
{ std::end } -> Iterator;
};
```
Compiling the above code crashes clang `clang++ -x c++ --std=c++23 `, crashes locally using clang-17.0 (a10019a), also on trunk with assertion (see godbolt link)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUU02PozgQ_TXFpZTIHwHCgUM-OqvVXvbQlz2tjKmAp41N26ZnMr9-BE0no1EfZiRkCvz8_Pz8SsVoOkdUQ36E_JypKfU-1E2YkrJRvamOssa3t_rZ4-tk9Iu9YaAx-HbSBPKAfUpjBHkAcQFx6bTedr5tvE1bHzoQl-8gLn9p_h8v__3niiD2KkYKyXi3SWFyLyAqYGdgh3Us2Pujx3H9I6Rx2k4tIciT9k7TmCLIp8-mjY8pkBoe08uYaBitSgsk3UZyaiB8voNWUvw7UVDJBwR5xkCvkwkUQeyfUYGoEMrjOx7nEhVCecYNyCeMqZ0tkIeoBvpfRZCnhV2uC6A8P-o_UXTyLinj6Dcl3XWQax_qPo71uZwPw39Wd_LDaKxxHaaeUDX-jVD7llAHFXuKqK1yHc7XNBcgjiCOuPmG-qPcLFLO67eQMxbE6U5gvVbW3nCK8y4Ly4aXW7YkhDPGq_l88wplo0fvcEkLfjWpx3uEZnQkwjVyaM0SKMzaWraVrFRGNS-qnPGCS5H1tVQ7pmRe8l2-Z9U-542-llwwUmzXlrzJTC2YkKzie5bv9rnYNmxf8d31WlybsmwLDjtGgzJ2a-3bMGc8MzFOVBdFwUVmVUM2Ls0kxOqNmPsq1DN-00xdhB2zJqb4YEgmWapPi6fX4F2ar--0Wrk4tp47-cFo1N7FFJRxKWZTsPUvLWhSPzVb7QcQl3mL9bUZg_9COoG4LIojiMsi-kcAAAD__70INH4">