http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54858
Bug #: 54858 Summary: [4.6/4.7/4.8 Regression] ICE in cp_tree_equal Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: ja...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org Starting with http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144618 // { dg-do compile } template <int> struct A {}; template <typename T, T *> struct B {}; template <typename D> struct C { A<0> c0; B<A<0>, &C::c0> d0;// { dg-error "could not convert template argument" } A<0> c1; B<A<0>, &C::c1> d1;// { dg-error "could not convert template argument" } A<0> c2; B<A<0>, &C::c2> d2;// { dg-error "could not convert template argument" } A<0> c3; B<A<0>, &C::c3> d3;// { dg-error "could not convert template argument" } A<0> c4; B<A<0>, &C::c4> d4;// { dg-error "could not convert template argument" } A<0> c5; B<A<0>, &C::c5> d5;// { dg-error "could not convert template argument" } A<0> c6; B<A<0>, &C::c6> d6;// { dg-error "could not convert template argument" } A<0> c7; B<A<0>, &C::c7> d7;// { dg-error "could not convert template argument" } A<0> c8; B<A<0>, &C::c8> d8;// { dg-error "could not convert template argument" } A<0> c9; B<A<0>, &C::c9> d9;// { dg-error "could not convert template argument" } A<0> ca; B<A<0>, &C::ca> da;// { dg-error "could not convert template argument" } A<0> cb; B<A<0>, &C::cb> db;// { dg-error "could not convert template argument" } }; C<int> e; ICEs in cp_tree_equal (prior to r149188 only two lines with dg-error are actually needed to trigger it), no options needed.