1! { dg-do run }
2! Test the fix for PR58085, where the offset for 'x' was set to zero,
3! rather than -1.
4!
5! Contributed by Vladimir Fuka  <vladimir.fuka@gmail.com>
6!
7module foo
8contains
9  function bar (arg) result (res)
10    integer arg, res(3)
11    res = [arg, arg+1, arg +2]
12  end function
13end module
14  use foo
15  real d(3,3)
16  integer a,b,c
17  character(48) line1, line2
18  associate (x=>shape(d))
19    a = x(1)
20    b = x(2)
21    write (line1, *) a, b
22    write (line2, *) x
23    if (trim (line1) .ne. trim (line2)) call abort
24  end associate
25  associate (x=>[1,2])
26    a = x(1)
27    b = x(2)
28    write (line1, *) a, b
29    write (line2, *) x
30    if (trim (line1) .ne. trim (line2)) call abort
31  end associate
32  associate (x=>bar(5)) ! make sure that we haven't broken function association
33    a = x(1)
34    b = x(2)
35    c = x(3)
36    write (line1, *) a, b, c
37    write (line2, *) x
38    if (trim (line1) .ne. trim (line2)) call abort
39  end associate
40end
41