[ Forwarded from http://bugs.debian.org/406324 ] Alexei Sheplyakov reports that gcc 3.4, 4.0 and 4.1 produces an ICE on the following invalid code: namespace A { class ex; struct f { f(const ex& x); }; } namespace B { template inline A::f g(const T& p) { return f(A::ex(p)); } } (sid)648:tbm@em64t: ~] gcc-4.1 -c -O t.cc t.cc: In function ‘A::f B::g(const T&)’: t.cc:8: internal compiler error: in type_dependent_expression_p, at cp/pt.c:12745 Please submit a full bug report, GCC 3.3 accepts this invalid code, and 4.2 rejects it with: t.cc: In function 'A::f B::g(const T&)': t.cc:3: error: argument dependent lookup finds 'struct A::f' t.cc:8: error: in call to 'f' -- Summary: [3.4/4.0/4.1 Regression] ICE in type_dependent_expression_p, at cp/pt.c:12739 Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30425