34 lines
829 B
Fortran
34 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
|