The string lengths are truncated to 32-bit values here, which shouldn't happen.
$ cat substr.f90 program main character (len=2_8**32_8+4_8) :: ch ch = ' ' print *,ch(1:2_8**32_8+3_8) end program main $ gfortran -fdump-tree-original substr.f90 $ cat substr.f90.003t.original MAIN__ () { char ch[1:4]; _gfortran_set_std (68, 127, 0); __builtin_memmove (&ch, " ", 1); __builtin_memset (&ch + 1B, 32, 3); ... -- Summary: truncating strings longer than 2**32 characters Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31243