Imported Upstream version 7.5
[platform/upstream/gdb.git] / gdb / testsuite / gdb.fortran / module.f90
1 ! Copyright 2009-2012 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 modmany
27         integer :: var_a = 10, var_b = 11, var_c = 12, var_i = 14
28 end module modmany
29
30 module moduse
31         integer :: var_x = 30, var_y = 31
32 end module moduse
33
34         subroutine sub1
35         use mod1
36         if (var_i .ne. 1) call abort
37         var_i = var_i                         ! i-is-1
38         end
39
40         subroutine sub2
41         use mod2
42         if (var_i .ne. 2) call abort
43         var_i = var_i                         ! i-is-2
44         end
45
46         program module
47
48         use modmany, only: var_b, var_d => var_c, var_i
49         use moduse, var_z => var_y
50
51         call sub1
52         call sub2
53
54         if (var_b .ne. 11) call abort
55         if (var_d .ne. 12) call abort
56         if (var_i .ne. 14) call abort
57         if (var_x .ne. 30) call abort
58         if (var_z .ne. 31) call abort
59         var_b = var_b                         ! a-b-c-d
60 end