https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113724
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Inside omp_build_struct_sibling_lists, the following assignment:
11654 grp->grp_start = new_next;
has on the LHS the [3] array with value:
(gdb) p *grp
$147 = {grp_start = 0x7ffff71f9688, grp_end = 0x7ffff71f9630, mark = UNVISITED,
deleted = true, reprocess_struct = false, fragile = false, sibling = 0x0, next
= 0x0}
while
(gdb) p new_next
$146 = (tree *) 0x7ffff71f96d0
which causes the alias issue we are seeing. Before the assignment:
(gdb) p debug(*(tree*)0x7ffff71f9688)
map(tofrom:S1.b) map(tofrom:S1.p) map(tofrom:*S1.p [len: 400])
map(attach_detach:S1.p [bias: 0])
(gdb) p debug(*(tree*)0x7ffff71f96d0)
map(tofrom:S1.p) map(tofrom:*S1.p [len: 400]) map(attach_detach:S1.p [bias: 0])