The following subroutine leads to an ICE: subroutine MPWT_transform_metric integer :: info character :: msg(1000) write (msg, '("Error in call to DGESV, info=",i4)') info end subroutine MPWT_transform_metric with GNU Fortran 95 (GCC 3.5.0 20040713 (experimental)) The code is strange in that msg is an array of one-character strings instead of a single string.
Confirmed. Even shorter example: =========================== subroutine FOO character :: msg(10) write (msg, *) end subroutine FOO ===========================
*** This bug has been marked as a duplicate of 15966 ***