------- Comment #1 from burnus at gcc dot gnu dot org 2008-07-16 20:45 -------
> program main
> CALL badlocale()
> WRITE(*,'(G2.4)') 1.2345
> end program main
>
> If the code executed correctly, the expected output would be
> 1,235
No, the expected output would be "1.235" according to the Fortran standard. You
need to use, e.g.,
WRITE(*, '(G2.4)',decimal='comma') 1.2345
to get the "1,235". (decimal="comma" and "dc" are supported since gfortran 4.4
and part for the Fortran 2003 standard.)
However, I agree that gfortran should not print an internal error as setting
the locale might happen in mixed-language programming. The question is only how
to enforce a LC_ALL = "C" for libgfortran's printf calls without causing other
problems such has performance hits.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36857