xref: /llvm-project/flang/test/Semantics/label15.f90 (revision 96d229c9abdfb2836e18a554bfb63b5d52aeebfa)
1*96d229c9SAndrzej Warzynski! RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s
2b781a04fSpeter klausler
3b781a04fSpeter klausler!CHECK-NOT: error:
4b781a04fSpeter klauslermodule mm
5b781a04fSpeter klausler   interface
6b781a04fSpeter klausler      module subroutine m(n)
7b781a04fSpeter klausler      end
8b781a04fSpeter klausler   end interface
9b781a04fSpeter klauslerend module mm
10b781a04fSpeter klausler
11b781a04fSpeter klauslerprogram p
12b781a04fSpeter klausler   use mm
13b781a04fSpeter klausler20 print*, 'p'
14b781a04fSpeter klausler21 call p1
15b781a04fSpeter klausler22 call p2
16b781a04fSpeter klausler23 f0 = f(0); print '(f5.1)', f0
17b781a04fSpeter klausler24 f1 = f(1); print '(f5.1)', f1
18b781a04fSpeter klausler25 call s(0); call s(1)
19b781a04fSpeter klausler26 call m(0); call m(1)
20b781a04fSpeter klausler27 if (.false.) goto 29
21b781a04fSpeter klausler28 print*, 'px'
22b781a04fSpeter klauslercontains
23b781a04fSpeter klausler   subroutine p1
24b781a04fSpeter klausler      print*, 'p1'
25b781a04fSpeter klausler      goto 29
26b781a04fSpeter klausler29 end subroutine p1
27b781a04fSpeter klausler   subroutine p2
28b781a04fSpeter klausler      print*, 'p2'
29b781a04fSpeter klausler      goto 29
30b781a04fSpeter klausler29 end subroutine p2
31b781a04fSpeter klausler29 end
32b781a04fSpeter klausler
33b781a04fSpeter klauslerfunction f(n)
34b781a04fSpeter klausler   print*, 'f'
35b781a04fSpeter klausler31 call f1
36b781a04fSpeter klausler32 call f2
37b781a04fSpeter klausler   f = 30.
38b781a04fSpeter klausler   if (n == 0) goto 39
39b781a04fSpeter klausler   f = f + 3.
40b781a04fSpeter klausler   print*, 'fx'
41b781a04fSpeter klauslercontains
42b781a04fSpeter klausler   subroutine f1
43b781a04fSpeter klausler      print*, 'f1'
44b781a04fSpeter klausler      goto 39
45b781a04fSpeter klausler39 end subroutine f1
46b781a04fSpeter klausler   subroutine f2
47b781a04fSpeter klausler      print*, 'f2'
48b781a04fSpeter klausler      goto 39
49b781a04fSpeter klausler39 end subroutine f2
50b781a04fSpeter klausler39 end
51b781a04fSpeter klausler
52b781a04fSpeter klauslersubroutine s(n)
53b781a04fSpeter klausler   print*, 's'
54b781a04fSpeter klausler41 call s1
55b781a04fSpeter klausler42 call s2
56b781a04fSpeter klausler43 call s3
57b781a04fSpeter klausler   if (n == 0) goto 49
58b781a04fSpeter klausler   print*, 'sx'
59b781a04fSpeter klauslercontains
60b781a04fSpeter klausler   subroutine s1
61b781a04fSpeter klausler      print*, 's1'
62b781a04fSpeter klausler      goto 49
63b781a04fSpeter klausler49 end subroutine s1
64b781a04fSpeter klausler   subroutine s2
65b781a04fSpeter klausler      print*, 's2'
66b781a04fSpeter klausler      goto 49
67b781a04fSpeter klausler49 end subroutine s2
68b781a04fSpeter klausler   subroutine s3
69b781a04fSpeter klausler      print*, 's3'
70b781a04fSpeter klausler      goto 49
71b781a04fSpeter klausler49 end subroutine s3
72b781a04fSpeter klausler49 end
73b781a04fSpeter klausler
74b781a04fSpeter klauslersubmodule(mm) mm1
75b781a04fSpeter klauslercontains
76b781a04fSpeter klausler   module procedure m
77b781a04fSpeter klausler      print*, 'm'
78b781a04fSpeter klausler   50 call m1
79b781a04fSpeter klausler   51 call m2
80b781a04fSpeter klausler      if (n == 0) goto 59
81b781a04fSpeter klausler      print*, 'mx'
82b781a04fSpeter klausler   contains
83b781a04fSpeter klausler      subroutine m1
84b781a04fSpeter klausler         print*, 'm1'
85b781a04fSpeter klausler         goto 59
86b781a04fSpeter klausler   59 end subroutine m1
87b781a04fSpeter klausler      subroutine m2
88b781a04fSpeter klausler         print*, 'm2'
89b781a04fSpeter klausler         goto 59
90b781a04fSpeter klausler   59 end subroutine m2
91b781a04fSpeter klausler   59 end procedure m
92b781a04fSpeter klauslerend submodule mm1
93