annotate gcc/testsuite/gfortran.dg/interface_27.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do compile }
kono
parents:
diff changeset
2 !
kono
parents:
diff changeset
3 ! PR 40039: Procedures as actual arguments: Check intent of arguments
kono
parents:
diff changeset
4 !
kono
parents:
diff changeset
5 ! Contributed by Janus Weil <janus@gcc.gnu.org>
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 module m
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 contains
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 subroutine a(x,f)
kono
parents:
diff changeset
12 real :: x
kono
parents:
diff changeset
13 interface
kono
parents:
diff changeset
14 real function f(y)
kono
parents:
diff changeset
15 real,intent(in) :: y
kono
parents:
diff changeset
16 end function
kono
parents:
diff changeset
17 end interface
kono
parents:
diff changeset
18 print *,f(x)
kono
parents:
diff changeset
19 end subroutine
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 real function func(z)
kono
parents:
diff changeset
22 real,intent(inout) :: z
kono
parents:
diff changeset
23 func = z**2
kono
parents:
diff changeset
24 end function
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 subroutine caller
kono
parents:
diff changeset
27 interface
kono
parents:
diff changeset
28 real function p(y)
kono
parents:
diff changeset
29 real,intent(in) :: y
kono
parents:
diff changeset
30 end function
kono
parents:
diff changeset
31 end interface
kono
parents:
diff changeset
32 pointer :: p
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 call a(4.3,func) ! { dg-error "INTENT mismatch in argument" }
kono
parents:
diff changeset
35 p => func ! { dg-error "INTENT mismatch in argument" }
kono
parents:
diff changeset
36 end subroutine
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 end module