35 lines
829 B
Fortran
35 lines
829 B
Fortran
|
! RUN: %python %S/test_errors.py %s %flang_fc1
|
||
|
! Exercise function vs subroutine distinction in generics
|
||
|
module m1
|
||
|
type t1
|
||
|
integer n
|
||
|
end type
|
||
|
interface g1
|
||
|
integer function f1(x, j)
|
||
|
import t1
|
||
|
class(t1), intent(in out) :: x
|
||
|
integer, intent(in) :: j
|
||
|
end
|
||
|
end interface
|
||
|
end module
|
||
|
|
||
|
program test
|
||
|
use m1
|
||
|
!WARNING: Generic interface 'g1' has both a function and a subroutine
|
||
|
interface g1
|
||
|
subroutine s1(x, a)
|
||
|
import t1
|
||
|
class(t1), intent(in out) :: x
|
||
|
real, intent(in) :: a
|
||
|
end subroutine
|
||
|
end interface
|
||
|
type(t1) :: x
|
||
|
print *, g1(x,1) ! ok
|
||
|
!ERROR: No specific function of generic 'g1' matches the actual arguments
|
||
|
print *, g1(x,1.)
|
||
|
!ERROR: No specific subroutine of generic 'g1' matches the actual arguments
|
||
|
call g1(x,1)
|
||
|
call g1(x, 1.) ! ok
|
||
|
contains
|
||
|
end
|