https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85250
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-02-12 CC| |msebor at gcc dot gnu.org Ever confirmed|0 |1 Known to fail| |7.3.0, 8.2.0, 9.0 --- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed with the simplified test case below. Not a regression. $ cat pr85250.C && gcc -S -Wall pr85250.C template <class T, class U> struct X; template <class T> struct X<T, T> { typedef T U; }; struct A { template<typename T, typename X<T, int>::U = 0> operator T(); }; int main() { A a; return 1 + a; } pr85250.C: In function ‘int main()’: pr85250.C:12:12: error: no match for ‘operator+’ (operand types are ‘int’ and ‘A’) 12 | return 1 + a; | ~ ^ ~ | | | | int A