When processing declarations in resolve-names.cpp, we were returning a symbol that had SubprogramName details to PushSubprogramScope(), which expects a symbol with Subprogram details. I adjusted the code and added a test. Differential Revision: https://reviews.llvm.org/D89829
36 lines
644 B
Fortran
36 lines
644 B
Fortran
! RUN: %S/test_errors.sh %s %t %f18
|
|
module m
|
|
interface a
|
|
subroutine s(x)
|
|
real :: x
|
|
end subroutine
|
|
!ERROR: 's' is already declared in this scoping unit
|
|
subroutine s(x)
|
|
integer :: x
|
|
end subroutine
|
|
end interface
|
|
end module
|
|
|
|
module m2
|
|
interface s
|
|
subroutine s(x)
|
|
real :: x
|
|
end subroutine
|
|
!ERROR: 's' is already declared in this scoping unit
|
|
subroutine s(x)
|
|
integer :: x
|
|
end subroutine
|
|
end interface
|
|
end module
|
|
|
|
module m3
|
|
interface s
|
|
subroutine s
|
|
end
|
|
end interface
|
|
contains
|
|
!ERROR: 's' is already declared in this scoping unit
|
|
subroutine s
|
|
end subroutine
|
|
end
|