aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/internal_references_1.f90
blob: b53ab325aded6dca00c2c42b8957f557b1311dfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
! { dg-do compile }
! This tests the patch for PRs 24327, 25024 & 25625, which
! are all connected with references to internal procedures.
! This is a composite of the PR testcases; and each is
! labelled by PR.
!
! Contributed by Paul Thomas  <pault@gcc.gnu.org>
!
! PR25625 - would neglect to point out that there were 2 subroutines p.
module m
  implicit none
contains

  subroutine p (i)   ! { dg-error "(1)" }
    integer :: i
  end subroutine

  subroutine p (i)   ! { dg-error "is already defined" }
   integer :: i   ! { dg-error "Unexpected data declaration statement in CONTAINS section" }
  end subroutine  ! { dg-error "Expecting END MODULE statement" }
end module
!
! PR25124 - would happily ignore the declaration of foo in the main program.
program test
real :: foo, x
x = bar ()          ! This is OK because it is a regular reference.
x = foo ()
contains
    function foo () ! { dg-error "explicit interface from a previous" }
      foo = 1.0  ! { dg-error "Unexpected assignment statement in CONTAINS section" }
    end function foo ! { dg-error "Expecting END PROGRAM statement" }
    function bar ()
      bar = 1.0
    end function bar
end program test