annotate gcc/testsuite/gfortran.dg/loc_2.f90 @ 144:8f4e72ab4e11

fix segmentation fault caused by nothing next cur_op to end
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 21:23:56 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do run }
kono
parents:
diff changeset
2 ! { dg-options "-std=legacy" }
kono
parents:
diff changeset
3 !
kono
parents:
diff changeset
4 ! Series of routines for testing a loc() implementation
kono
parents:
diff changeset
5 program test
kono
parents:
diff changeset
6 common /errors/errors(12)
kono
parents:
diff changeset
7 integer i
kono
parents:
diff changeset
8 logical errors
kono
parents:
diff changeset
9 errors = .false.
kono
parents:
diff changeset
10 call testloc
kono
parents:
diff changeset
11 do i=1,12
kono
parents:
diff changeset
12 if (errors(i)) then
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
13 STOP 1
111
kono
parents:
diff changeset
14 endif
kono
parents:
diff changeset
15 end do
kono
parents:
diff changeset
16 end program test
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 ! Test loc
kono
parents:
diff changeset
19 subroutine testloc
kono
parents:
diff changeset
20 common /errors/errors(12)
kono
parents:
diff changeset
21 logical errors
kono
parents:
diff changeset
22 integer, parameter :: n = 9
kono
parents:
diff changeset
23 integer, parameter :: m = 10
kono
parents:
diff changeset
24 integer, parameter :: o = 11
kono
parents:
diff changeset
25 integer :: offset
kono
parents:
diff changeset
26 integer :: i,j,k,intsize,realsize,dblsize,chsize,ch8size
kono
parents:
diff changeset
27 integer itarg1 (n)
kono
parents:
diff changeset
28 integer itarg2 (m,n)
kono
parents:
diff changeset
29 integer itarg3 (o,m,n)
kono
parents:
diff changeset
30 real rtarg1(n)
kono
parents:
diff changeset
31 real rtarg2(m,n)
kono
parents:
diff changeset
32 real rtarg3(o,m,n)
kono
parents:
diff changeset
33 character chtarg1(n)
kono
parents:
diff changeset
34 character chtarg2(m,n)
kono
parents:
diff changeset
35 character chtarg3(o,m,n)
kono
parents:
diff changeset
36 character*8 ch8targ1(n)
kono
parents:
diff changeset
37 character*8 ch8targ2(m,n)
kono
parents:
diff changeset
38 character*8 ch8targ3(o,m,n)
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 intsize = kind(itarg1(1))
kono
parents:
diff changeset
41 realsize = kind(rtarg1(1))
kono
parents:
diff changeset
42 chsize = kind(chtarg1(1))*len(chtarg1(1))
kono
parents:
diff changeset
43 ch8size = kind(ch8targ1(1))*len(ch8targ1(1))
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 do, i=1,n
kono
parents:
diff changeset
46 offset = i-1
kono
parents:
diff changeset
47 if (loc(itarg1).ne.loc(itarg1(i))-offset*intsize) then
kono
parents:
diff changeset
48 ! Error #1
kono
parents:
diff changeset
49 errors(1) = .true.
kono
parents:
diff changeset
50 end if
kono
parents:
diff changeset
51 if (loc(rtarg1).ne.loc(rtarg1(i))-offset*realsize) then
kono
parents:
diff changeset
52 ! Error #2
kono
parents:
diff changeset
53 errors(2) = .true.
kono
parents:
diff changeset
54 end if
kono
parents:
diff changeset
55 if (loc(chtarg1).ne.loc(chtarg1(i))-offset*chsize) then
kono
parents:
diff changeset
56 ! Error #3
kono
parents:
diff changeset
57 errors(3) = .true.
kono
parents:
diff changeset
58 end if
kono
parents:
diff changeset
59 if (loc(ch8targ1).ne.loc(ch8targ1(i))-offset*ch8size) then
kono
parents:
diff changeset
60 ! Error #4
kono
parents:
diff changeset
61 errors(4) = .true.
kono
parents:
diff changeset
62 end if
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 do, j=1,m
kono
parents:
diff changeset
65 offset = (j-1)+m*(i-1)
kono
parents:
diff changeset
66 if (loc(itarg2).ne. &
kono
parents:
diff changeset
67 loc(itarg2(j,i))-offset*intsize) then
kono
parents:
diff changeset
68 ! Error #5
kono
parents:
diff changeset
69 errors(5) = .true.
kono
parents:
diff changeset
70 end if
kono
parents:
diff changeset
71 if (loc(rtarg2).ne. &
kono
parents:
diff changeset
72 loc(rtarg2(j,i))-offset*realsize) then
kono
parents:
diff changeset
73 ! Error #6
kono
parents:
diff changeset
74 errors(6) = .true.
kono
parents:
diff changeset
75 end if
kono
parents:
diff changeset
76 if (loc(chtarg2).ne. &
kono
parents:
diff changeset
77 loc(chtarg2(j,i))-offset*chsize) then
kono
parents:
diff changeset
78 ! Error #7
kono
parents:
diff changeset
79 errors(7) = .true.
kono
parents:
diff changeset
80 end if
kono
parents:
diff changeset
81 if (loc(ch8targ2).ne. &
kono
parents:
diff changeset
82 loc(ch8targ2(j,i))-offset*ch8size) then
kono
parents:
diff changeset
83 ! Error #8
kono
parents:
diff changeset
84 errors(8) = .true.
kono
parents:
diff changeset
85 end if
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 do k=1,o
kono
parents:
diff changeset
88 offset = (k-1)+o*(j-1)+o*m*(i-1)
kono
parents:
diff changeset
89 if (loc(itarg3).ne. &
kono
parents:
diff changeset
90 loc(itarg3(k,j,i))-offset*intsize) then
kono
parents:
diff changeset
91 ! Error #9
kono
parents:
diff changeset
92 errors(9) = .true.
kono
parents:
diff changeset
93 end if
kono
parents:
diff changeset
94 if (loc(rtarg3).ne. &
kono
parents:
diff changeset
95 loc(rtarg3(k,j,i))-offset*realsize) then
kono
parents:
diff changeset
96 ! Error #10
kono
parents:
diff changeset
97 errors(10) = .true.
kono
parents:
diff changeset
98 end if
kono
parents:
diff changeset
99 if (loc(chtarg3).ne. &
kono
parents:
diff changeset
100 loc(chtarg3(k,j,i))-offset*chsize) then
kono
parents:
diff changeset
101 ! Error #11
kono
parents:
diff changeset
102 errors(11) = .true.
kono
parents:
diff changeset
103 end if
kono
parents:
diff changeset
104 if (loc(ch8targ3).ne. &
kono
parents:
diff changeset
105 loc(ch8targ3(k,j,i))-offset*ch8size) then
kono
parents:
diff changeset
106 ! Error #12
kono
parents:
diff changeset
107 errors(12) = .true.
kono
parents:
diff changeset
108 end if
kono
parents:
diff changeset
109
kono
parents:
diff changeset
110 end do
kono
parents:
diff changeset
111 end do
kono
parents:
diff changeset
112 end do
kono
parents:
diff changeset
113
kono
parents:
diff changeset
114 end subroutine testloc
kono
parents:
diff changeset
115