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" } }
|