// 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'}} | |
} |