1! { dg-do run }
2!
3! PR 40176:  Fortran 2003: Procedure pointers with array return value
4!
5! Original test case by Barron Bichon <barron.bichon@swri.org>
6! Modified by Janus Weil <janus@gcc.gnu.org>
7
8PROGRAM test_prog
9
10  PROCEDURE(triple), POINTER :: f
11
12  f => triple
13  if (sum(f(2.,4.)-triple(2.,4.))>1E-3) call abort()
14
15CONTAINS
16
17  FUNCTION triple(a,b) RESULT(tre)
18    REAL, INTENT(in) :: a, b
19    REAL :: tre(2)
20    tre(1) = 3.*a
21    tre(2) = 3.*b
22  END FUNCTION triple
23
24END PROGRAM test_prog
25
26