summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/elemental_dependency_2.f90
blob: 2282e8821f751c17261fcb1643eeba6e5cef2da3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
! { dg-do compile }
!
! PR fortran/38487
! Spurious warning on pointers as elemental subroutine actual arguments
!
! Contributed by Harald Anlauf <anlauf@gmx.de>

module gfcbug82
  implicit none
  type t
    real, pointer :: q(:) =>NULL()
    real, pointer :: r(:) =>NULL()
  end type t
  type (t), save :: x, y
  real, dimension(:), pointer, save :: a => NULL(), b => NULL()
  real, save :: c(5), d
contains
  elemental subroutine add (q, r)
    real, intent (inout) :: q
    real, intent (in)    :: r
    q = q + r
  end subroutine add

  subroutine foo ()
      call add (y% q, x% r)
      call add (y% q, b   )
      call add (a   , x% r)
      call add (a   , b   )
      call add (y% q, d   )
      call add (a   , d   )
      call add (c   , x% r)
      call add (c   , b   )
  end subroutine foo
end module gfcbug82

! { dg-final { cleanup-modules "gfcbug82" } }