https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64426

            Bug ID: 64426
           Summary: Unnecessary string temporary for array assignment
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tkoenig at gcc dot gnu.org

After the fix for PR 56867, we now create temporaries for

program main
  character(len=4) :: a
  character(len=4) :: c(3)
  c(1) = 'abcd'
  c(2) = '1234'
  c(3) = 'wxyz'
  c(:)(1:2) = c(2)(1:2)
  c(:)(1:2) = c(2)(3:4)
  if (c(3) .ne. '23yz') call abort
end program main

bug.f90:7:14:

   c(:)(1:2) = c(2)(1:2)
              1
Warning: Creating array temporary at (1) [-Warray-temporaries]
bug.f90:8:14:

   c(:)(1:2) = c(2)(3:4)
              1
Warning: Creating array temporary at (1) [-Warray-temporaries]

Reply via email to