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

            Bug ID: 101594
           Summary: ICE: Segmentation fault with "-O2 -fno-if-conversion
                    -fno-ssa-phiopt -fno-tree-ch -fno-tree-dominator-opts
                    -fno-tree-pre -fno-tree-reassoc -fselective-scheduling
                    -fschedule-insns -fvar-tracking-assignments"
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: suochenyao at 163 dot com
  Target Milestone: ---

*******************************************************************************
OS and Platform:
CentOS Linux release 7.8.2003 (Core), x86_64 GNU/Linux
*******************************************************************************
Program:
long a;
int b, c;
char *d;
char(e)(f) { return f; }
void g() {
  char h;
  for (; a;) {
    h = e(c || b);
    *d = h;
  }
}
int main() {}
*******************************************************************************
gcc version:
$ gcc -v
Using built-in specs.
COLLECT_GCC=/data/bin/gcc-dev/bin/gcc
COLLECT_LTO_WRAPPER=/data/bin/gcc-dev/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --prefix=/data/bin/gcc-dev --disable-multilib
--enable-languages=c,c++
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210722 (experimental) (GCC)

git version 4048d8a08621820dd6cc6035e13de3c3c82af4a5
*******************************************************************************
$ gcc -O2 -fno-if-conversion -fno-ssa-phiopt -fno-tree-ch
-fno-tree-dominator-opts -fno-tree-pre -fno-tree-reassoc -fselective-scheduling
-fschedule-insns -fvar-tracking-assignments a.c
cc1: warning: var-tracking-assignments changes selective scheduling
a.c: In function ‘e’:
a.c:4:6: warning: type of ‘f’ defaults to ‘int’ [-Wimplicit-int]
    4 | char(e)(f) { return f; }
      |      ^
during RTL pass: sched1
a.c: In function ‘g’:
a.c:11:1: internal compiler error: Segmentation fault
   11 | }
      | ^
0xe4483f crash_signal
        ../../gcc/toplev.c:328
0xe0369a moving_insn_creates_bookkeeping_block_p
        ../../gcc/sel-sched.c:2031
0xe0369a moveup_expr
        ../../gcc/sel-sched.c:2199
0xe0369a moveup_expr_cached
        ../../gcc/sel-sched.c:2544
0xe0649e move_op_ascend
        ../../gcc/sel-sched.c:6149
0xe0865f code_motion_path_driver
        ../../gcc/sel-sched.c:6648
0xe08cf3 code_motion_process_successors
        ../../gcc/sel-sched.c:6342
0xe08cf3 code_motion_path_driver
        ../../gcc/sel-sched.c:6608
0xe08cf3 code_motion_process_successors
        ../../gcc/sel-sched.c:6342
0xe08cf3 code_motion_path_driver
        ../../gcc/sel-sched.c:6608
0xe09219 move_op
        ../../gcc/sel-sched.c:6702
0xe09219 move_exprs_to_boundary
        ../../gcc/sel-sched.c:5223
0xe09219 schedule_expr_on_boundary
        ../../gcc/sel-sched.c:5436
0xe0c756 fill_insns
        ../../gcc/sel-sched.c:5578
0xe0c756 schedule_on_fences
        ../../gcc/sel-sched.c:7353
0xe0c756 sel_sched_region_2
        ../../gcc/sel-sched.c:7491
0xe0e248 sel_sched_region_1
        ../../gcc/sel-sched.c:7533
0xe0f85b sel_sched_region(int)
        ../../gcc/sel-sched.c:7634
0xe0f85b sel_sched_region(int)
        ../../gcc/sel-sched.c:7619
0xe0fa09 run_selective_scheduling()
        ../../gcc/sel-sched.c:7720
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.

Reply via email to