https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69164

            Bug ID: 69164
           Summary: [6 Regression] ICE in create_tmp_var, at
                    gimple-expr.c:468
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at gcc dot gnu.org
  Target Milestone: ---

trunk r232077, i686-linux-gnu, works with -O0

reduced test case:

class A {
public:
  class B {
    friend A;
    B() {}
    bool : 1;
  };
  B m_fn1() {
    B r;
    return r;
  }
};

class C {
public:
  class D {
  public:
    D(C *p1) : m_label(p1->m_assembler.m_fn1()) {}
    A::B m_label;
  };
  A m_assembler;
};

enum YarrCharSize {};
class F : C {
  D generateDotStarEnclosure_findEOLLoop = this;

public:
  F(int, YarrCharSize) {}
};
YarrCharSize a;
int b;
void fn1() { F(b, a); }

$ g++ -c -march=i686 -g -O3 -std=gnu++11  -Wno-invalid-offsetof YarrJIT.ii
YarrJIT.ii: In constructor 'C::D::D(C*)':
YarrJIT.ii:33:23: internal compiler error: in analyze_access_subtree, at
tree-sra.c:2340
 void fn1() { F(b, a); }
                       ^

0x876134e analyze_access_subtree
        ../../src/gcc/tree-sra.c:2339
0x87610c7 analyze_access_subtree
        ../../src/gcc/tree-sra.c:2312
0x87669dd analyze_access_trees
        ../../src/gcc/tree-sra.c:2402
0x87669dd analyze_all_variable_accesses
        ../../src/gcc/tree-sra.c:2655
0x8766dad perform_intra_sra
        ../../src/gcc/tree-sra.c:3631
Please submit a full bug report,
with preprocessed source if appropriate.

Reply via email to