http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57942
Richard Smith <richard-gccbugzilla at metafoo dot co.uk> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |richard-gccbugzilla@metafoo
| |.co.uk
--- Comment #1 from Richard Smith <richard-gccbugzilla at metafoo dot co.uk> ---
Reduced to:
template<typename T> struct S { typename T::error type; };
struct X {};
void f(S<int> *);
void f(...);
void g() { f((X*)0); }
It looks like, when considering a conversion from A* to B*, where A is a class
type, gcc attempts to complete B. There seems to be no obvious justification
for this (it doesn't help in determining whether B is a base class of A, which
seems like the most likely explanation for this behavior).