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])