mirror of
https://github.com/autc04/Retro68.git
synced 2024-06-28 11:30:19 +00:00
55 lines
1.0 KiB
Fortran
55 lines
1.0 KiB
Fortran
! { dg-do compile }
|
|
!
|
|
! PR fortran/37445, in which the contained 'putaline' would be
|
|
! ignored and no specific interface found in the generic version.
|
|
!
|
|
! Contributed by Norman S Clerman < clerman@fuse.net>
|
|
!
|
|
MODULE M1
|
|
INTERFACE putaline
|
|
MODULE PROCEDURE S1,S2
|
|
END INTERFACE
|
|
CONTAINS
|
|
SUBROUTINE S1(I)
|
|
i = 3
|
|
END SUBROUTINE
|
|
SUBROUTINE S2(F)
|
|
f = 4.0
|
|
END SUBROUTINE
|
|
END MODULE
|
|
|
|
MODULE M2
|
|
USE M1
|
|
CONTAINS
|
|
SUBROUTINE S3
|
|
integer :: check = 0
|
|
CALL putaline()
|
|
if (check .ne. 1) STOP 1
|
|
CALL putaline("xx")
|
|
if (check .ne. 2) STOP 2
|
|
! CALL putaline(1.0) ! => this now causes an error, as it should
|
|
CONTAINS
|
|
SUBROUTINE putaline(x)
|
|
character, optional :: x
|
|
if (present(x)) then
|
|
check = 2
|
|
else
|
|
check = 1
|
|
end if
|
|
END SUBROUTINE
|
|
END SUBROUTINE
|
|
subroutine S4
|
|
integer :: check = 0
|
|
REAL :: rcheck = 0.0
|
|
call putaline(check)
|
|
if (check .ne. 3) STOP 3
|
|
call putaline(rcheck)
|
|
if (rcheck .ne. 4.0) STOP 4
|
|
end subroutine s4
|
|
END MODULE
|
|
|
|
USE M2
|
|
CALL S3
|
|
call S4
|
|
END
|