http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56243
--- Comment #6 from Paul Pluzhnikov <ppluzhnikov at google dot com> 2013-02-23 23:06:18 UTC --- (In reply to comment #4) > I think the testcase is invalid Looks like you are right, and it's been over-reduced. > Shouldn't the below line be diagnosed, even if it is in a template ? > F& name = x->value; The error being that typeof(x->value) is A, not F, right? If so, this corrected test case still triggers ICE: class A { virtual int String (); }; class F: public A { }; template < typename V > class G { V value; }; class D { template < int N > void Verify() { G<F>* x = 0; F& name = x->value; name.String(); } };