| ! { dg-do run } |
| ! |
| ! PR 40646: [F03] array-valued procedure pointer components |
| ! |
| ! Original test case by Charlie Sharpsteen <chuck@sharpsteen.net> |
| ! Modified by Janus Weil <janus@gcc.gnu.org> |
| |
| module bugTestMod |
| implicit none |
| type:: boundTest |
| procedure(returnMat), pointer, nopass:: test |
| end type boundTest |
| contains |
| function returnMat( a, b ) result( mat ) |
| integer:: a, b |
| double precision, dimension(a,b):: mat |
| mat = 1d0 |
| end function returnMat |
| end module bugTestMod |
| |
| program bugTest |
| use bugTestMod |
| implicit none |
| type( boundTest ):: testObj |
| double precision, dimension(2,2):: testCatch |
| testObj%test => returnMat |
| testCatch = testObj%test(2,2) |
| print *,testCatch |
| if (sum(testCatch)/=4) STOP 1 |
| print *,testObj%test(3,3) |
| if (sum(testObj%test(3,3))/=9) STOP 2 |
| end program bugTest |