1! { dg-do run } 2! 3! PR 40646: [F03] array-valued procedure pointer components 4! 5! Original test case by Charlie Sharpsteen <chuck@sharpsteen.net> 6! Modified by Janus Weil <janus@gcc.gnu.org> 7 8module bugTestMod 9 implicit none 10 procedure(returnMat), pointer :: pp2 11contains 12 function returnMat( a, b ) result( mat ) 13 integer:: a, b 14 double precision, dimension(a,b):: mat 15 mat = 1d0 16 end function returnMat 17end module bugTestMod 18 19program bugTest 20 use bugTestMod 21 implicit none 22 procedure(returnMat), pointer :: pp 23 pp => returnMat 24 if (sum(pp(2,2))/=4) call abort() 25 pp2 => returnMat 26 if (sum(pp2(3,2))/=6) call abort() 27end program bugTest 28