https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68724
Nathan Sidwell <nathan at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |nathan at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |nathan at gcc dot gnu.org --- Comment #2 from Nathan Sidwell <nathan at gcc dot gnu.org> --- One can turn it into the syntactically correct: template <typename _Tp, _Tp> struct integral_constant { }; struct X : integral_constant < bool, true >{ }; template <typename _Tp> struct integral_constant < bool, __is_enum(_Tp)> { }; but still get the ICE when unify meets an unexpected TRAIT_EXPR.