http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56243
Bug #: 56243
Summary: [4.8 regression] ICE in tree check: expected
field_decl, have identifier_node in
fixed_type_or_null, at cp/class.c:6645
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: [email protected]
ReportedBy: [email protected]
Google ref b/8153611
Looks very similar to PR53816.
Test:
class A
{
virtual int String ();
};
class F: public A { };
template < typename V > class G
{
V value;
};
class D
{
template < int N > void Verify(const int (&p1)[N]) const {
for (int iter; G < A > *x = 0;)
{
F& name = x->value;
name.String ();
}
}
};
ICE with g++ (GCC) 4.8.0 20130205 (experimental).
g++ -c t.ii # ok
g++ -c -std=c++11 t.ii
t.ii: In member function ‘void D::Verify(const int (&)[N]) const’:
t.ii:19:22: internal compiler error: tree check: expected field_decl, have
identifier_node in fixed_type_or_null, at cp/class.c:6645
name.String ();
^
0xc6159a tree_check_failed(tree_node const*, char const*, int, char const*,
...)
../../gcc/tree.c:8946
0x5cd853 tree_check
../../gcc/tree.h:3669
...