! { dg-do run } ! Test the fix for PR58085, where the offset for 'x' was set to zero, ! rather than -1. ! ! Contributed by Vladimir Fuka ! module foo contains function bar (arg) result (res) integer arg, res(3) res = [arg, arg+1, arg +2] end function end module use foo real d(3,3) integer a,b,c character(48) line1, line2 associate (x=>shape(d)) a = x(1) b = x(2) write (line1, *) a, b write (line2, *) x if (trim (line1) .ne. trim (line2)) call abort end associate associate (x=>[1,2]) a = x(1) b = x(2) write (line1, *) a, b write (line2, *) x if (trim (line1) .ne. trim (line2)) call abort end associate associate (x=>bar(5)) ! make sure that we haven't broken function association a = x(1) b = x(2) c = x(3) write (line1, *) a, b, c write (line2, *) x if (trim (line1) .ne. trim (line2)) call abort end associate end