https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92099
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Reduced: template <typename _Tp, _Tp __v> struct A { static constexpr _Tp value = __v; }; typedef A<bool, false> false_type; template <typename> struct DependentFalse : false_type {}; enum class E; template <E id> void fn1() { static_assert(DependentFalse<decltype(id)>::value); }