[Bug fortran/79154] omp declare simd in pure function?
chinoune.mehdi at hotmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Jan 21 08:36:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79154
--- Comment #2 from Chinoune <chinoune.mehdi at hotmail dot com> ---
(In reply to kargl from comment #1)
> (In reply to Chinoune from comment #0)
> > Created attachment 40550 [details]
> > the fortran program
> >
> > I tried to build the program (see attachment) with gfortran (5.4.0
> > linux,cygwin 6.2.0,6.3.0 mingw 6.2.0 linux ...)
> > it gave me this error:
> > test_simd.f90:6:6:
> >
> > !$omp declare simd(add)
> > 1
> > Error: OpenMP directives at (1) may not appear in PURE or ELEMENTAL
> > procedures
>
> AFAIK, GCC support OpenMP 4.0. On p. 26 of OpenMP 4.0 Standard, one
> finds
>
> Restrictions
>
> The following restriction applies to all OpenMP directives:
> · OpenMP directives may not appear in PURE or ELEMENTAL procedures.
>
> so you get the above error message. I'll note that OpenMP 4.5 Standard
> states
> Restrictions
>
> The following restriction applies to all OpenMP directives:
>
> Restrictions
>
> · OpenMP directives, except SIMD and declare target directives,
> may not appear in pure
> procedures.
>
> I'll further note that the GCC wiki page for OpenMP sugeests that
> no one is actively working on $.5 support.
gcc support full openmp 4.5 for c/c++ (see
https://gcc.gnu.org/gcc-6/changes.html) and partially for fortran, so the omp
simd declare must be accepted.
More information about the Gcc-bugs
mailing list