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

            Bug ID: 113928
           Summary: Aliasing of pointer in expression
           Product: gcc
           Version: 11.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: eddyg_61-bugzilla at yahoo dot it
  Target Milestone: ---

I think that this program gives an erroneous result:

program wzerror
    implicit none
    integer, parameter :: N = 20
    complex, target :: wz(N)
    real, pointer :: wr(:)
    integer :: i

    wr => wz%re
    wz = 0
    wr = [(i,i=1,N)]
    wr = wr + wz(N:1:-1)%re

    print *, wr
end program

It doesn't recognize the aliasing in the expression that should be allowed when
pointers are involved.
I'm expecting a list of '21'. But this is not the case.

I couldn't test on a more recent compiler.
  • [Bug fortran/113928] New: A... eddyg_61-bugzilla at yahoo dot it via Gcc-bugs

Reply via email to