]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.fortran/vla-sub.f90
Update copyright year range in header of all files managed by GDB
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.fortran / vla-sub.f90
CommitLineData
213516ef 1! Copyright 2015-2023 Free Software Foundation, Inc.
3f2f83dd
KB
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
2e466f72 5! the Free Software Foundation; either version 3 of the License, or
3f2f83dd
KB
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
1cc75e92 14! along with this program. If not, see <http://www.gnu.org/licenses/>.
3f2f83dd
KB
15!
16! Original file written by Jakub Jelinek <jakub@redhat.com> and
17! Jan Kratochvil <jan.kratochvil@redhat.com>.
18! Modified for the GDB testcases by Keven Boell <keven.boell@intel.com>.
19
20subroutine foo (array1, array2)
21 integer :: array1 (:, :)
22 real :: array2 (:, :, :)
23
24 array1(:,:) = 5 ! not-filled
25 array1(1, 1) = 30
26
27 array2(:,:,:) = 6 ! array1-filled
28 array2(:,:,:) = 3
29 array2(1,1,1) = 30
30 array2(3,3,3) = 90 ! array2-almost-filled
31end subroutine
32
33subroutine bar (array1, array2)
34 integer :: array1 (*)
35 integer :: array2 (4:9, 10:*)
36
37 array1(5:10) = 1311
38 array1(7) = 1
39 array1(100) = 100
40 array2(4,10) = array1(7)
41 array2(4,100) = array1(7)
42 return ! end-of-bar
43end subroutine
44
45program vla_sub
46 interface
47 subroutine foo (array1, array2)
48 integer :: array1 (:, :)
49 real :: array2 (:, :, :)
50 end subroutine
51 end interface
52 interface
53 subroutine bar (array1, array2)
54 integer :: array1 (*)
55 integer :: array2 (4:9, 10:*)
56 end subroutine
57 end interface
58
59 real, allocatable :: vla1 (:, :, :)
60 integer, allocatable :: vla2 (:, :)
61
62 ! used for subroutine
63 integer :: sub_arr1(42, 42)
64 real :: sub_arr2(42, 42, 42)
65 integer :: sub_arr3(42)
66
67 sub_arr1(:,:) = 1 ! vla2-deallocated
68 sub_arr2(:,:,:) = 2
69 sub_arr3(:) = 3
70
71 call foo(sub_arr1, sub_arr2)
72 call foo(sub_arr1(5:10, 5:10), sub_arr2(10:15,10:15,10:15))
73
74 allocate (vla1 (10,10,10))
75 allocate (vla2 (20,20))
76 vla1(:,:,:) = 1311
77 vla2(:,:) = 42
78 call foo(vla2, vla1)
79
80 call bar(sub_arr3, sub_arr1)
81end program vla_sub