This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: gomp - equivalence for threadprivate data
Steve Kargl wrote:
> I doubt that this misfeature has ever been allowed by any
> revision of the OpenMPi Standard, so -fopen-std=legacy make
> no sense. Perhaps, -fopenmp-lemming or -fgnu-openmp. The
> default behavior should be an error.
>
Well, legacy is meant for legacy code: I think (almost?) no code which
is only allowed by -std=legacy was ever legal Fortran
66/77/90/95/2003/2008, but still it is supported. Actually things like
"<tab>" (esp. in fixed-form source code) were never allowed and still
gfortran accepts then by default (-std=gnu) and without warning.
In that regard I don't see a reason why a widely supported non-standard
OpenMP construct, which is used in real-world programs cannot be
supported (be it with a warning, be it with a special flag).
>> Regarding the legacy checking: Gfortran also supports the <tab>
>> character in $omp! contrary to the standard but in line with the other
>> compilers. One could add an error/warning there, but again one misses a
>> -fopenmp-std= option.
>>
> tab is perfectly fine within OpenMP 3.0.
>
See http://gcc.gnu.org/ml/fortran/2008-05/msg00326.html and in the spec:
(2.1.1) "Initial directive lines must have a space or a zero in column 6"
The tab is accepted without any warning or error in gfortran, which I
think it OK, but one could argue otherwise.*
Tobias
* Actually, I mentioned that both when the patch went into the GOMP3
branch and before its merge to the trunkj,
http://gcc.gnu.org/ml/fortran/2008-06/msg00035.html, but no one thought
that a warning/error was really required. [I'm happy with that
change/the status quo (as I would be if a warning were printed).]