http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51925
Bug #: 51925 Summary: [4.7 Regression] ICE in tsubst Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org CC: ja...@gcc.gnu.org class A { }; class B; struct C { C *c1 (); int c2 (const A &); B *c3; }; class D; class B { friend class C; D *b; }; struct E { A e (); }; template <int, typename T> struct F { typedef T f; }; template <typename T1 = void> struct G : public E { template <int Index> struct Select : F <Index, T1> { }; using E::e; template <int Index> typename Select <Index>::f e () {} operator typename Select <0>::f () { e <0> (); } }; struct D { G <A> d (A) {} }; int C::c2 (const A &x) { A a = c1 ()->c3->b->d (x); } ICEs starting with http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183304