https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122511
Bug ID: 122511
Summary: [16 Regression] RISC-V: ICE during GIMPLE pass: sccp
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ewlu at rivosinc dot com
Target Milestone: ---
Created attachment 62682
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=62682&action=edit
freport-bug output
Testcase:
char a;
_Bool b;
void c(_Bool d, short e, short f[][1][1]) {
for (_Bool g = 0; g < e; g = a)
for (; b;)
for (signed ae = 0; ae < 72; ae += 4) {
b = ({
int h = b;
int aa = e ? f[g][d][g] : 0;
aa ? h : aa;
});
}
}
Command/backtrace:
$
/scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
-I/scratch/ewlu/ci/compiler-fuzz-ci/csmith-build/include -fsigned-char
-fno-strict-aliasing -fwrapv -O3 red.c -o rv64gcv.out -w -freport-bug
during GIMPLE pass: sccp
red.c: In function 'c':
red.c:3:6: internal compiler error: Segmentation fault
3 | void c(_Bool d, short e, short f[][1][1]) {
| ^
0x3074ba1 internal_error(char const*, ...)
../../../gcc/gcc/diagnostic-global-context.cc:787
0x15709b3 crash_signal
../../../gcc/gcc/toplev.cc:323
0x79506844532f ???
./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x11aa35d bool is_a_helper<gphi*>::test<gimple>(gimple*)
../../../gcc/gcc/gimple.h:1263
0x11aa35d bool is_a<gphi*, gimple>(gimple*)
../../../gcc/gcc/is-a.h:232
0x11aa35d gimple_infer_range::gimple_infer_range(gimple*, range_query*, bool)
../../../gcc/gcc/gimple-range-infer.cc:165
0x11ac05f infer_range_manager::register_all_uses(tree_node*)
../../../gcc/gcc/gimple-range-infer.cc:516
0x11ac1d2 infer_range_manager::has_range_p(basic_block_def*, tree_node*)
../../../gcc/gcc/gimple-range-infer.cc:389
0x11ab5f2 infer_range_manager::maybe_adjust_range(vrange&, tree_node*,
basic_block_def*)
../../../gcc/gcc/gimple-range-infer.cc:409
0x118b67f gimple_ranger::range_on_edge(vrange&, edge_def*, tree_node*)
../../../gcc/gcc/gimple-range.cc:261
0x119937d fold_using_range::range_of_phi(vrange&, gphi*, fur_source&)
../../../gcc/gcc/gimple-range-fold.cc:926
0x119dd10 fold_using_range::fold_stmt(vrange&, gimple*, fur_source&,
tree_node*)
../../../gcc/gcc/gimple-range-fold.cc:651
0x1188591 gimple_ranger::fold_range_internal(vrange&, gimple*, tree_node*)
../../../gcc/gcc/gimple-range.cc:282
0x1188591 gimple_ranger::prefill_stmt_dependencies(tree_node*)
../../../gcc/gcc/gimple-range.cc:421
0x11894ea gimple_ranger::range_of_stmt(vrange&, gimple*, tree_node*)
../../../gcc/gcc/gimple-range.cc:339
0x118ae69 gimple_ranger::range_of_expr(vrange&, tree_node*, gimple*)
../../../gcc/gcc/gimple-range.cc:112
0x10e2973 expr_not_equal_to(tree_node*, generic_wide_int<wide_int_storage>
const&)
../../../gcc/gcc/fold-const.cc:10956
0x10e5744 tree_single_nonzero_warnv_p(tree_node*, bool*)
../../../gcc/gcc/fold-const.cc:15511
0x10e5b96 tree_expr_nonzero_p(tree_node*)
../../../gcc/gcc/fold-const.cc:10932
0x1e59227 gimple_simplify_300(gimple_match_op*, gimple**, tree_node*
(*)(tree_node*), tree_node*, tree_node**, tree_code)
/scratch/ewlu/daily-upstream-build/build-gcv/build-gcc-linux-stage2/gcc/gimple-match-10.cc:5441
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Preprocessed source stored into /tmp/ccw96Cv1.out file, please attach this to
your bugreport.
Godbolt: https://godbolt.org/z/1G3z7f7jW
Found via fuzzer