OSDN Git Service

PR debug/43329
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / proc_decl_3.f90
1 ! { dg-do compile }
2 ! Some tests for PROCEDURE declarations inside of interfaces.
3 ! Contributed by Janus Weil <jaydub66@gmail.com>
4
5 module m
6
7   interface
8     subroutine a()
9     end subroutine a
10   end interface
11
12   procedure(c) :: f
13
14   interface bar
15     procedure a,d
16   end interface bar
17
18   interface foo
19     procedure c
20   end interface foo
21
22   abstract interface
23     procedure f  ! { dg-error "must be in a generic interface" }
24   end interface
25
26   interface
27     function opfoo(a)
28       integer,intent(in) :: a
29       integer :: opfoo
30     end function opfoo
31   end interface
32
33   interface operator(.op.)
34     procedure opfoo
35   end interface
36
37   external ex  ! { dg-error "has no explicit interface" }
38   procedure():: ip  ! { dg-error "has no explicit interface" }
39   procedure(real):: pip  ! { dg-error "has no explicit interface" }
40
41   interface nn1
42     procedure ex
43     procedure a, a  ! { dg-error "already present in the interface" }
44   end interface
45
46   interface nn2
47     procedure ip
48   end interface
49
50   interface nn3
51     procedure pip
52   end interface
53
54 contains
55
56  subroutine d(x)
57
58    interface
59      subroutine x()
60      end subroutine x
61    end interface
62
63    interface gen
64      procedure x
65    end interface
66
67  end subroutine d
68
69  function c(x)
70    integer :: x
71    real :: c
72    c = 3.4*x
73  end function c
74
75 end module m