Open
Description
To quickly reproduce: https://gcc.godbolt.org/z/r46T3d798 (assertion-trunk)
#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)