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! 7program 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 14 if (any (m .ne. reshape((/2,3,4,5/),(/2,2/)))) call abort () 15 m=c+f() 16 if (any (m .ne. reshape((/2,3,4,5/),(/2,2/)))) call abort () 17 call sub(m+f()) 18 if (any (n .ne. reshape((/3,4,5,6/),(/2,2/)))) call abort () 19 call sub(c+m) 20 if (any (n .ne. reshape((/3,5,7,9/),(/2,2/)))) call abort () 21 call sub(f()+c) 22 if (any (n .ne. reshape((/2,3,4,5/),(/2,2/)))) call abort () 23 call sub(c+f()) 24 if (any (n .ne. reshape((/2,3,4,5/),(/2,2/)))) call abort () 25 26contains 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 40end program matrix 41