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

            Bug ID: 95283
           Summary: ICE: in hoist_memory_references, at
                    tree-ssa-loop-im.c:2607
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

Reproducer:
short c;
bool d;
unsigned e, f;
char g, h;
extern bool i[];
void j() {
  for (char a = 0; a < 100; a++)
    for (char b = 0; b < 20; b += 2) {
      if (e)
        d = f = 0;
      else
        g = i[8] = 0;
      h = c;
    }
}

Error:
>$ g++ -O3 func.cpp -c
during GIMPLE pass: lim
func.cpp: In function ‘void j()’:
func.cpp:6:6: internal compiler error: in hoist_memory_references, at
tree-ssa-loop-im.c:2607
    6 | void j() {
      |      ^
0x822f8a hoist_memory_references
        gcc_src/gcc/tree-ssa-loop-im.c:2607
0x822f8a store_motion_loop
        gcc_src/gcc/tree-ssa-loop-im.c:2904
0x12381da do_store_motion
        gcc_src/gcc/tree-ssa-loop-im.c:2929
0x12381da tree_ssa_lim
        gcc_src/gcc/tree-ssa-loop-im.c:3148
0x12381da execute
        gcc_src/gcc/tree-ssa-loop-im.c:3198

GCC version:
11.0.0 (bcb63eb2cbd3caf212b9cf42d8c218c09dc6ff8b)

Reply via email to