blob: 1d4ff15f07b95a1fc3354d5f50455f2ca0ee9ac0 [file] [log] [blame]
! { dg-do run }
! Tests the fix for PR40646 in which the assignment would cause an ICE.
!
! Contributed by Charlie Sharpsteen <chuck@sharpsteen.net>
! http://gcc.gnu.org/ml/fortran/2009-07/msg00010.html
! and reported by Tobias Burnus <burnus@gcc,gnu.org>
!
module bugTestMod
implicit none
type:: boundTest
contains
procedure, nopass:: test => returnMat
end type boundTest
contains
function returnMat( a, b ) result( mat )
integer:: a, b, i
double precision, dimension(a,b):: mat
mat = dble (reshape ([(i, i = 1, a * b)],[a,b]))
return
end function returnMat
end module bugTestMod
program bugTest
use bugTestMod
implicit none
integer i
double precision, dimension(2,2):: testCatch
type( boundTest ):: testObj
testCatch = testObj%test(2,2) ! This would cause an ICE
if (any (testCatch .ne. dble (reshape ([(i, i = 1, 4)],[2,2])))) STOP 1
end program bugTest