https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103769
Bug ID: 103769 Summary: ICE in hashtab_chk_error alias template and pack expansion Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ppalka at gcc dot gnu.org Target Milestone: --- $ cat testcase.C template<int __v> struct integral_constant { static const int value = __v; }; template<bool, class> struct enable_if; template<bool _Bp, class _Tp> using __enable_if_t = enable_if<_Bp, _Tp>; template<class...> using void_t = void; template<class... _Pred> void_t<__enable_if_t<_Pred::value, void>...> foo(); using type = decltype(foo<integral_constant<1>>()); $ cat testcase.C | g++ --param=hash-table-verification-limit=1000 -x c++ - hash table checking failed: equal operator returns true for a pair of values with a different hash value <stdin>: In substitution of ‘template<class ...> using void_t = void [with <template-parameter-1-1> = {__enable_if_t<_Pred::value, void>...}]’: <stdin>:5:71: required by substitution of ‘template<class ... _Pred> void_t<enable_if<_Pred::value, void>...> foo() [with _Pred = {integral_constant<1>}]’ <stdin>:6:48: required from here <stdin>:5:71: internal compiler error: in hashtab_chk_error, at hash-table.c:137