// RUN: %clang_cc1 -verify -std=c++20 -fsyntax-only %s
enum {A, S, D, F};
int main() {
using asdf = decltype(A);
using enum asdf; // this line causes the crash
return 0;
}
namespace N1 {
enum {A, S, D, F};
constexpr struct T {
using asdf = decltype(A);
using enum asdf;
} t;
static_assert(t.D == D);
static_assert(T::S == S);
}
namespace N2 {
enum {A, S, D, F};
constexpr struct T {
struct {
using asdf = decltype(A);
using enum asdf;
} inner;
} t;
static_assert(t.inner.D == D);
static_assert(t.D == D); // expected-error {{no member named 'D' in 'N2::T'}}
}