xref: /llvm-project/flang/test/Semantics/generic03.f90 (revision 2f999cce195946b66f968d50e38b06e6a1f60b8e)
1*2f999cceSPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1
2*2f999cceSPeter Klausler! Exercise function vs subroutine distinction in generics
3*2f999cceSPeter Klauslermodule m1
4*2f999cceSPeter Klausler  type t1
5*2f999cceSPeter Klausler    integer n
6*2f999cceSPeter Klausler  end type
7*2f999cceSPeter Klausler  interface g1
8*2f999cceSPeter Klausler    integer function f1(x, j)
9*2f999cceSPeter Klausler      import t1
10*2f999cceSPeter Klausler      class(t1), intent(in out) :: x
11*2f999cceSPeter Klausler      integer, intent(in) :: j
12*2f999cceSPeter Klausler    end
13*2f999cceSPeter Klausler  end interface
14*2f999cceSPeter Klauslerend module
15*2f999cceSPeter Klausler
16*2f999cceSPeter Klauslerprogram test
17*2f999cceSPeter Klausler  use m1
18*2f999cceSPeter Klausler  !WARNING: Generic interface 'g1' has both a function and a subroutine
19*2f999cceSPeter Klausler  interface g1
20*2f999cceSPeter Klausler    subroutine s1(x, a)
21*2f999cceSPeter Klausler      import t1
22*2f999cceSPeter Klausler      class(t1), intent(in out) :: x
23*2f999cceSPeter Klausler      real, intent(in) :: a
24*2f999cceSPeter Klausler    end subroutine
25*2f999cceSPeter Klausler  end interface
26*2f999cceSPeter Klausler  type(t1) :: x
27*2f999cceSPeter Klausler  print *, g1(x,1) ! ok
28*2f999cceSPeter Klausler  !ERROR: No specific function of generic 'g1' matches the actual arguments
29*2f999cceSPeter Klausler  print *, g1(x,1.)
30*2f999cceSPeter Klausler  !ERROR: No specific subroutine of generic 'g1' matches the actual arguments
31*2f999cceSPeter Klausler  call g1(x,1)
32*2f999cceSPeter Klausler  call g1(x, 1.) ! ok
33*2f999cceSPeter Klausler contains
34*2f999cceSPeter Klauslerend
35