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.