36 lines
846 B
Fortran
36 lines
846 B
Fortran
! { dg-do compile }
|
|
!
|
|
! This tests the fix for PR36325, which corrected for the fact that a
|
|
! specific or generic INTERFACE statement implies the EXTERNAL attibute.
|
|
!
|
|
! Contributed by Janus Weil <janus@gcc.gnu.org>
|
|
|
|
module a
|
|
interface
|
|
subroutine foo
|
|
end subroutine
|
|
end interface
|
|
external foo ! { dg-error "Duplicate EXTERNAL attribute" }
|
|
end module
|
|
|
|
module b
|
|
interface
|
|
function sin (x)
|
|
real :: sin, x
|
|
end function
|
|
end interface
|
|
intrinsic sin ! { dg-error "EXTERNAL attribute conflicts with INTRINSIC attribute" }
|
|
end module
|
|
|
|
! argument checking was not done for external procedures with explicit interface
|
|
program c
|
|
interface
|
|
subroutine bar(x)
|
|
real :: x
|
|
end subroutine
|
|
end interface
|
|
call bar() ! { dg-error "Missing actual argument" }
|
|
end program
|
|
|
|
! { dg-final { cleanup-modules "a b" } }
|