<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63253>63253</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang frontend C++ crash on invalid redefinition of alias
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</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/r46T3d798 (assertion-trunk)
```cpp
#include <variant>
struct good_number{};
using Number = std::variant<int, good_number>;
using Number = std::variant<int, enum bad_number{}>; // invalid forward reference
struct bad_number{};
int main()
{
Number value = bad_number{};
return 0;
}
```
Compiling the above code crashes clang `clang++ -x c++`, 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/eJyUU02PozoQ_DXm0koEbQLhwCEhk-M7zf3J2A3xG8fO80dmZ3_9yiST-VjtYSUEFi5XV5erRQh6tkQ92-zZ5lCIFE_O96NPUZggrmKmYnTqrX928H_S8sW8gaeLdypJYnwHpxgvgfEdwyPD4yzlenZqdCaunZ8ZHn8yPPq6eeaq7bbAcCtCIB-1s6vok31h2LHywMrd_d2Ut0deLvc_yLWVJikCxoer8FrYyPjT51Mh-iQjzM6pf206j-RZu2ftgfH9DZCCtjP8s2wB4wcIUWXRfPcgHLSNDIcvJPzpwfDXPGTTGUbxXVBmhJtZoO1VGK1gcv5VeAWeJvJkJX3p6neOL5K0jXAW2jLcfnjZ3iEA8K72KkyiRfMfCTPaU0zeQvlRpT18u5rP1Qd3vmiTTYknAjG6K4F0ikB6EU4UQBphZ8gXmhcM9wz3sPoB8rbMdDg80MZJYcwb3Hxejqyqdl0uwanKsupEbhIHECY4cBaWEMGrjid4JCujAxHckwhGLzkrVM9VxztRUF8122ZTVdiWxalvW7GpNqIjwqau2xGnVm3rpqtJ1q2qx0L3WCIvm6qqOqyqcr1tuJy2pcSK-IbExOqSzkKbtTHXc05-oUNI1DccN7wwYiQTlhFDtPQKyyZDzBPn-3xmNaY5sLo0OsTwwRJ1NNQPi4eTdzaSVTDcXVxMyx6858iToklbvXjgJhBGiwBF8qb_NqY6ntK4lu7M8JiL3T-ri3f_kYwMj4vEwPC4tPArAAD___Q5Rek">