Peter Klausler 3b7b7fa713 [flang] Accept a separate module procedure interface as a specific procedure
The code snippet

  module m
    interface
      module subroutine specific
      end subroutine
    end interface
    interface generic
       module procedure specific
    end interface
  end module

elicits a bogus semantic error about "specific" not being an acceptable
module procedure for the generic interface; fix.

Differential Revision: https://reviews.llvm.org/D134402
2022-09-23 11:18:01 -07:00

48 lines
998 B
Fortran

! RUN: %python %S/test_errors.py %s %flang_fc1
module m
real :: var
interface i
!ERROR: 'var' is not a procedure
procedure :: sub, var
!ERROR: Procedure 'bad' not found
procedure :: bad
end interface
interface operator(.foo.)
!ERROR: 'var' is not a procedure
procedure :: var
!ERROR: OPERATOR(.foo.) procedure 'sub' must be a function
procedure :: sub
!ERROR: Procedure 'bad' not found
procedure :: bad
end interface
contains
subroutine sub
end
end
subroutine s
interface i
!ERROR: 'sub' is not a module procedure
module procedure :: sub
end interface
interface assignment(=)
!ERROR: 'sub' is not a module procedure
module procedure :: sub
end interface
contains
subroutine sub(x, y)
real, intent(out) :: x
logical, intent(in) :: y
end
end
module m2
interface
module subroutine specific
end subroutine
end interface
interface generic
module procedure specific
end interface
end module