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.

Reply via email to