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

            Bug ID: 80463
           Summary: [6/7 Regression] ICE with -fselective-scheduling2 and
                    -fvar-tracking-assignments
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

Starting from r227844, we ICE on:

$ cat ice.ii
int *a;
int b, c;
void
d ()
{
  for (int e; c; e++)
    switch (e)
      {
      case 0:
        a[e] = 1;
      case 1:
        b = 2;
        break;
      default:
        a[e] = 3;
      }
}

$ g++ ice.ii -fselective-scheduling2 -O2 -c -fvar-tracking-assignments
cc1plus: warning: var-tracking-assignments changes selective scheduling
ice.ii: In function ‘void d()’:
ice.ii:17:1: internal compiler error: in code_motion_process_successors, at
sel-sched.c:6393
 }
 ^
0xdba2f2 code_motion_process_successors
        ../../gcc/sel-sched.c:6390
0xdba2f2 code_motion_path_driver
        ../../gcc/sel-sched.c:6613
0xdb9ec7 code_motion_process_successors
        ../../gcc/sel-sched.c:6347
0xdb9ec7 code_motion_path_driver
        ../../gcc/sel-sched.c:6613
0xdba7e6 move_op
        ../../gcc/sel-sched.c:6704
0xdba7e6 move_exprs_to_boundary
        ../../gcc/sel-sched.c:5227
0xdba7e6 schedule_expr_on_boundary
        ../../gcc/sel-sched.c:5440
0xdbe2bb fill_insns
        ../../gcc/sel-sched.c:5582
0xdbfdc4 schedule_on_fences
        ../../gcc/sel-sched.c:7356
0xdbfdc4 sel_sched_region_2
        ../../gcc/sel-sched.c:7494
0xdc1544 sel_sched_region_1
        ../../gcc/sel-sched.c:7536
0xdc1544 sel_sched_region(int)
        ../../gcc/sel-sched.c:7637
0xdc2981 run_selective_scheduling()
        ../../gcc/sel-sched.c:7713
0xd9b4c5 rest_of_handle_sched2
        ../../gcc/sched-rgn.c:3722
0xd9b4c5 execute
        ../../gcc/sched-rgn.c:3866

The commit is probably not responsible for the ICE.

Reply via email to