84f2270858ec79e8adb0a62a2fc2118c28ac0e25
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.fortran / module.f90
1 ! Copyright 2009-2021 Free Software Foundation, Inc.
2 !
3 ! This program is free software; you can redistribute it and/or modify
4 ! it under the terms of the GNU General Public License as published by
5 ! the Free Software Foundation; either version 3 of the License, or
6 ! (at your option) any later version.
7 !
8 ! This program is distributed in the hope that it will be useful,
9 ! but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 ! GNU General Public License for more details.
12 !
13 ! You should have received a copy of the GNU General Public License
14 ! along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16 module mod1
17 integer :: var_i = 1
18 integer :: var_const
19 parameter (var_const = 20)
20 end module mod1
21
22 module mod2
23 integer :: var_i = 2
24 end module mod2
25
26 module mod3
27 integer :: mod2 = 3
28 integer :: mod1 = 3
29 integer :: var_i = 3
30 end module mod3
31
32 module modmany
33 integer :: var_a = 10, var_b = 11, var_c = 12, var_i = 14
34 end module modmany
35
36 module moduse
37 integer :: var_x = 30, var_y = 31
38 end module moduse
39
40 subroutine sub1
41 use mod1
42 if (var_i .ne. 1) call abort
43 var_i = var_i ! i-is-1
44 end
45
46 subroutine sub2
47 use mod2
48 if (var_i .ne. 2) call abort
49 var_i = var_i ! i-is-2
50 end
51
52 subroutine sub3
53 USE mod3
54 var_i = var_i ! i-is-3
55 END
56
57 program module
58
59 use modmany, only: var_b, var_d => var_c, var_i
60 use moduse, var_z => var_y
61
62 call sub1
63 call sub2
64 call sub3
65
66 if (var_b .ne. 11) call abort
67 if (var_d .ne. 12) call abort
68 if (var_i .ne. 14) call abort
69 if (var_x .ne. 30) call abort
70 if (var_z .ne. 31) call abort
71 var_b = var_b ! a-b-c-d
72 end
This page took 0.038396 seconds and 3 git commands to generate.