After fixing, 43072 and friends, one excess copy-in and copy-out remains, where a substring describes the declared string length. The testcase is in internal_pack_9.f90:
subroutine foo2 implicit none external foo character(len=20) :: str(2) = '1234567890' call foo(str(:)(1:20)) ! This is still not fixed. end Paul -- Summary: Excess copy-in/copy-out with character argument Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pault at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43136