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: unassig...@gcc.gnu.org
        ReportedBy: ppluzhni...@google.com


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
...

Reply via email to