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

            Bug ID: 93845
           Summary: [10 regression] ICE in verify_sra_access_forest, at
                    tree-sra.c:2358
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dimhen at gmail dot com
  Target Milestone: ---

probably differs from PR93776 and PR93516

r10-6309 PASS
r10-6342 FAIL
r10-6723 FAIL

[r10-6723] g++ -fpreprocessed -fchecking=1 -O -c x.ii
g++  -fpreprocessed -fchecking=1 -O -c x.ii; ll x.ii
during GIMPLE pass: esra
x.ii: In function ‘void m()’:
x.ii:21:1: internal compiler error: in verify_sra_access_forest, at
tree-sra.c:2358
   21 | }
      | ^
0x817afd verify_sra_access_forest(access*)
        /home/dimhen/src/gcc_current/gcc/tree-sra.c:2358
0x1334bca verify_all_sra_access_forests()
        /home/dimhen/src/gcc_current/gcc/tree-sra.c:2403
0x1339910 analyze_all_variable_accesses
        /home/dimhen/src/gcc_current/gcc/tree-sra.c:3414
0x1339e31 perform_intra_sra
        /home/dimhen/src/gcc_current/gcc/tree-sra.c:4468
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

$ cat x.ii
struct a;
struct b {
  a *operator->();
};
class c {
  void *g;
  int d;

public:
  template <typename e> e f() { return *static_cast<e *>(this); }
};
struct h : c {};
struct a {
  void i(c);
};
void m() {
  b j;
  c k;
  h l = k.f<h>();
  j->i(l);
}

Reply via email to