111
|
1 ! { dg-do run }
|
|
2 ! Tests the fix for pr32682, in which the scalarization loop variables
|
|
3 ! were not being determined when 'c' came first in an expression.
|
|
4 !
|
|
5 ! Contributed by Janus Weil <jaydub66@gmail.com>
|
|
6 !
|
|
7 program matrix
|
|
8
|
|
9 implicit none
|
|
10 real,dimension(2,2),parameter::c=reshape((/1,2,3,4/),(/2,2/))
|
|
11 real,dimension(2,2)::m, n
|
|
12
|
|
13 m=f()+c
|
131
|
14 if (any (m .ne. reshape((/2,3,4,5/),(/2,2/)))) STOP 1
|
111
|
15 m=c+f()
|
131
|
16 if (any (m .ne. reshape((/2,3,4,5/),(/2,2/)))) STOP 2
|
111
|
17 call sub(m+f())
|
131
|
18 if (any (n .ne. reshape((/3,4,5,6/),(/2,2/)))) STOP 3
|
111
|
19 call sub(c+m)
|
131
|
20 if (any (n .ne. reshape((/3,5,7,9/),(/2,2/)))) STOP 4
|
111
|
21 call sub(f()+c)
|
131
|
22 if (any (n .ne. reshape((/2,3,4,5/),(/2,2/)))) STOP 5
|
111
|
23 call sub(c+f())
|
131
|
24 if (any (n .ne. reshape((/2,3,4,5/),(/2,2/)))) STOP 6
|
111
|
25
|
|
26 contains
|
|
27
|
|
28 function f()
|
|
29 implicit none
|
|
30 real, dimension(2,2)::f
|
|
31 f=1
|
|
32 end function f
|
|
33
|
|
34 subroutine sub(a)
|
|
35 implicit none
|
|
36 real, dimension(2,2)::a
|
|
37 n = a
|
|
38 end subroutine sub
|
|
39
|
|
40 end program matrix
|