This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, Fortran] PR32987 - Allow TAB in FORMAT statements as extension and warn with -std=f*


Tobias Burnus wrote:
:ADDPATCH fortran:

In FORMAT statements, standard Fortran only allow tabs ('\t') in string
literals. However, all other compiler I checked allow it: ifort, g95,
NAG f95, sunf95, openf95. Except of ifort (with the option "-stand f95")
none of the compilers even print a compile-time warning.

gfortran currently accepts tabs quietly at compile time, but gives a
run-time error.

Given that all other compilers allow it, I would suggest to allow it as
well - and follow ifort by giving a warning with -std=f95/f2003.
(Actually, I have chosen to give a gfc_warning instead of an gfc_error
to save myself from several levels of error propagation :-)

Note, however, that Steve disagrees (see PR for full quote):

"A tab is not a legal substitution for a space character." [...]
"Here's a patch that permits gfortran to accept your INVALID code."
(His patch is the same as the libgfortran part of my patch; he continues
then:)
"[...] I will activity oppose application of this patch by others."

Reasoning by Steve:

"gfortran has been around for a long time now and this is the first
report of the tab-in-format runtime error. gfortran should complain
loudly that the code is invalid."


While I still think accepting it with a compile-time warning is enough, I strongly believe that there should be in any case a COMPILE-TIME diagnostic whatever we decide about accepting or rejecting it at run time.

I think everyone is in agreement that a compile time diagnostic should be given:

I think the default behavior, without -std=XXX, should give the warning at compile.

I think that for -std=f95 or -std=f2003, an error should be given at compile time.

At runtime, quiet acceptance for default, there is no runtime for -std=

Regards.

Jerry


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]