https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78468

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Yes, sure, there are 2 alloca uses in the parallel region, one is for y
variable, which uses __builtin_alloca_with_align ((p4 - 1 + 1) * 4, 32) and the
other is for a, which uses __builtin_alloca_with_align ((p5 - 1 + 1) * 8, 32).
p4 is 3 and p5 is 4, so the former should be 12 bytes and the latter 32 bytes.
But at least in the *.optimized dump I don't see anything that would attempt to
write more, there is at most y[2].t and for a at most a[127 / 32].t.
So, can you find out how much each alloca actually aligns and if what writes
are to those areas?
Does it fail also with OMP_NUM_THREADS=1?

Reply via email to