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

            Bug ID: 98787
           Summary: Aliasing not detected with array elements or some
                    intents
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jellby at yahoo dot com
  Target Milestone: ---

With -Waliasing (or -Wall), passing the same array as two dummy arguments with
"intent(in)" and "intent(out)" is detected and warned about, but not when only
an array element (which may be the whole array with assumed size) is passed, or
when "intent(inout)" is used.

!==================================
program main
implicit none
real :: x(100)
integer :: i

do i=1,size(x)
  x(i) = i
end do

! no warning for this:
call sub(size(x),x(1),x(1))
! warning for this:
call sub(size(x),x,x)

contains

subroutine sub(n,a,b)
implicit none
integer, intent(in) :: n
! no warning if one of these is inout:
real, intent(in) :: a(n)
real, intent(out) :: b(n)

b(:) = a(:)

end subroutine sub

end program main
!==================================

Reply via email to