[Bug middle-end/108459] New: [OpenMP] ICE during GIMPLE pass: ompexp (segfault) in expand_omp_for_init_counts
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 18 22:06:42 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108459
Bug ID: 108459
Summary: [OpenMP] ICE during GIMPLE pass: ompexp (segfault) in
expand_omp_for_init_counts
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, openmp
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
The following innocent looking code gives an ICE. As probably visible from the
look of the code, it was found via Fortran code, related to patch work for
PR fortran/107424.
This affects all versions down to GCC 11, which is the first one to support
non-rectangular loop nests.
Compiling the C test below with '-fopenmp' gives:
during GIMPLE pass: ompexp
ff.c: In function ‘s1’:
ff.c:12:13: internal compiler error: Segmentation fault
12 | #pragma omp for collapse(2)
| ^~~
0xef701f crash_signal
../../repos/gcc-trunk-commit/gcc/toplev.cc:314
0x7f9f608ce51f ???
./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0xbc5560 is_gimple_val(tree_node*)
../../repos/gcc-trunk-commit/gcc/gimple-expr.cc:837
0xc368f3 force_gimple_operand_1(tree_node*, gimple**, bool (*)(tree_node*),
tree_node*)
../../repos/gcc-trunk-commit/gcc/gimplify-me.cc:55
0xc36b0f force_gimple_operand_gsi_1(gimple_stmt_iterator*, tree_node*, bool
(*)(tree_node*), tree_node*, bool, gsi_iterator_update)
../../repos/gcc-trunk-commit/gcc/gimplify-me.cc:115
0xc36b0f force_gimple_operand_gsi(gimple_stmt_iterator*, tree_node*, bool,
tree_node*, bool, gsi_iterator_update)
../../repos/gcc-trunk-commit/gcc/gimplify-me.cc:141
0x1de8b5e expand_omp_for_init_counts
../../repos/gcc-trunk-commit/gcc/omp-expand.cc:2011
void s1 (int *a1, int *a2)
{
int i;
int j;
{
int D4266;
int D4267;
D4266 = -*a1;
D4267 = *a2;
#pragma omp for collapse(2)
for (i = 1; i <= 16; i = i + 1)
for (j = i * D4266 + D4267; j <= 16; j = j + 1)
{
}
}
}
More information about the Gcc-bugs
mailing list