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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-01-24
                 CC|                            |mpolacek at gcc dot gnu.org
   Target Milestone|---                         |7.5
            Summary|ICE testing convertibility  |[7/8/9 Regression] ICE
                   |of incomplete enumeration   |testing convertibility of
                   |types                       |incomplete enumeration
                   |                            |types
     Ever confirmed|0                           |1

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed.  

Started with r159006, it's a regression.

A valid version:

template<class T> T&& declval();

template<typename _To1>
void __test_aux(_To1);

template<typename _From1, typename _To1,
        typename = decltype(__test_aux<_To1>(declval<_From1>()))>
char __test(int);

template<typename, typename>
int __test(...);

enum E {
    x = decltype(__test<E, int>(0))(0);
};

Reply via email to