[Bug c++/99968] ICE on remove_const_t<incomplete enum type> in requires-expression

ppalka at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Apr 9 13:59:37 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99968

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ppalka at gcc dot gnu.org

--- Comment #6 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Reduced:

template<typename T> using remove_const_t = T;

template<typename T>
struct is_scoped_enum
{
  using type = remove_const_t<T>;
  static constexpr bool value = false;
};

enum E { e0 = __is_enum(E), e1 = is_scoped_enum<E>::value };

99968.C:10:51:   required from here
99968.C:4:8: error: enum value type is not ‘INTEGER_TYPE’ nor convertible to
the enum
    4 | struct is_scoped_enum
      |        ^~~~~~~~~~~~~~                                                   


This one seems to have started with r6-598, the same commit that introduced the
sanity check.


More information about the Gcc-bugs mailing list