1! { dg-do compile }
2! This tests the patch for PRs 24327, 25024 & 25625, which
3! are all connected with references to internal procedures.
4! This is a composite of the PR testcases; and each is
5! labelled by PR.
6!
7! Contributed by Paul Thomas  <pault@gcc.gnu.org>
8!
9! PR25625 - would neglect to point out that there were 2 subroutines p.
10module m
11  implicit none
12contains
13
14  subroutine p (i)   ! { dg-error "is already defined" }
15    integer :: i
16  end subroutine
17
18  subroutine p (i)   ! { dg-error "is already defined" }
19   integer :: i
20  end subroutine
21end module
22!
23! PR25124 - would happily ignore the declaration of foo in the main program.
24program test
25real :: foo, x      ! { dg-error "explicit interface and must not have attributes declared" }
26x = bar ()          ! This is OK because it is a regular reference.
27x = foo ()
28contains
29    function foo () ! { dg-error "explicit interface and must not have attributes declared" }
30      foo = 1.0
31    end function foo
32    function bar ()
33      bar = 1.0
34    end function bar
35end program test
36