<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">