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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
here is the valid code where the ICE happens:
template <typename> constexpr bool IsDestructible{};
template <typename T>
constexpr bool IsTriviallyDestructible = IsDestructible<T>;
template <typename T> class Optional {
  ~Optional() requires(!IsDestructible<T>);
  ~Optional() requires(!IsTriviallyDestructible<T>);
};
template <typename, typename ErrorT> class Result {
  using ErrorType = ErrorT;
  Optional<ErrorType> m_error;
};
class SocketError;
class UDPSocket {
  Result<UDPSocket, SocketError> u16ResultUDPSocketSocketError;
};

Reply via email to