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: [email protected]
ReportedBy: [email protected]
CC: [email protected]
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