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();
}
};