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