In the following program, transfer could be simplified at compile time, however, this does not happen.
Additionally is the following is not needed: - Call to _gfortran_internal_pack. There is no way the array could be noncontiguous. - Call to _gfortran_internal_unpack. There is no need to unpack the temporary array, especially not if it is only there as "src" argument of memmove. character(len=4,kind=4) :: str str = transfer([int(z'039f'),int(z'03cd'),int(z'03c7'), & int(z'30b8') ], str) end -- Summary: TRANSFER: Simplify array argument Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37212