mirror of
https://github.com/autc04/Retro68.git
synced 2024-09-28 18:56:06 +00:00
32 lines
908 B
Fortran
32 lines
908 B
Fortran
! { 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
|