https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114304

--- Comment #30 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to rguent...@suse.de from comment #29)
> Might be for \r\n line endings?

New lines are handled slightly differently – and \f and \v don't seem to be
handled at all.

Comparing the result with ifort/ifx/flang, they handle a bare '\r' (in contrast
to \r\n) at fewer places than gfortran – albeit from the code it looks as if a
\r not followed by \n is not handled consistently either.

> I'd keep it for the sake of preserving
> previous behavior.  isspace(3) tests for \f, \n, \r, \t, \v and space
> (but of course all depends on the locale, not sure whether libgfortran
> needs to care for locales)

I have added one example to the testcase, but that seems to be already handled
by the code further below which handles '\r' and '\n' - thus, the patch does
not handle it explicitly.

The Fortran standard does not seem to permit \f, \t, \v at all – at least I
only found those in the C interop section. The standard does not really define
what new line actually is, but: "A newline character is a nonblank character
returned by the intrinsic function NEW_LINE." – This handles different
character kinds, but always returns a single character (e.g. \r vs. \n would be
possible, but not \r\n).

* * *

Patch – which handles '\t':
https://gcc.gnu.org/pipermail/gcc-patches/2024-April/648950.html

Reply via email to