Peter Steinfeld 29d838310d [flang] Fix call to CHECK() on erroneous subroutine declaration
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
2020-10-20 18:09:15 -07:00

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