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

Reply via email to