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?