1! { dg-do run }
2! Tests the fix for PR27124 in which the unpacking of argument
3! temporaries and of array result temporaries occurred in the
4! incorrect order.
5!
6! Test is based on the original example, provided by
7! Philippe Schaffnit <P.Schaffnit@access.rwth-aachen.de>
8!
9  PROGRAM Test
10    INTEGER :: Array(2, 3) = reshape ((/1,4,2,5,3,6/),(/2,3/))
11    integer :: Brray(2, 3) = 0
12    Brray(1,:) = Function_Test (Array(1,:))
13    if (any(reshape (Brray, (/6/)) .ne. (/11, 0, 12, 0, 13, 0/))) call abort ()
14    Array(1,:) = Function_Test (Array(1,:))
15    if (any(reshape (Array, (/6/)) .ne. (/11, 4, 12, 5, 13, 6/))) call abort ()
16
17  contains
18      FUNCTION Function_Test (Input)
19          INTEGER, INTENT(IN) :: Input(1:3)
20          INTEGER :: Function_Test(1:3)
21          Function_Test = Input + 10
22      END FUNCTION Function_Test
23  END PROGRAM Test
24
25