https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113305
--- Comment #5 from Steve Kargl <sgk at troutmask dot apl.washington.edu> --- On Wed, Jan 10, 2024 at 06:24:40PM +0000, ivan.pribec at gmail dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113305 > > --- Comment #3 from Ivan Pribec <ivan.pribec at gmail dot com> --- > In the mail archive > (https://gcc.gnu.org/legacy-ml/fortran/2014-02/msg00077.html) I've read a > message implying that do concurrent gets translated into a regular for-loop > annotated with "#pragma ivdep", which assures the loop optimizer there are no > loop-carried dependencies. That said, I'm aware there is no good reason why > you'd want to use this directive on a do concurrent loop. > Note, I'm not saying that using '!GCC$ ivdep' is wrong. It's that gfortran parses the do-concurrent correctly, but whatever compiler pass(es) that ivdep activates seems to mishandle the terminated linked list. it->var holds information about 'i' and it->next points to the next do-index if one exists or is NULL. ivdep seems to corrupt the NULL.