OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gfortran.dg/] [assign_func_dtcomp_1.f90] - Diff between revs 149 and 154

Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
! { dg-do run }
! { dg-do run }
! { dg-options "-O0" }
! { dg-options "-O0" }
!
!
! Test fix for PR18022.
! Test fix for PR18022.
!
!
! Contributed by Paul Thomas 
! Contributed by Paul Thomas 
!
!
program assign_func_dtcomp
program assign_func_dtcomp
 implicit none
 implicit none
 type                         ::  mytype
 type                         ::  mytype
   real                       ::  x
   real                       ::  x
   real                       ::  y
   real                       ::  y
 end type mytype
 end type mytype
 type (mytype), dimension (4) ::  z
 type (mytype), dimension (4) ::  z
 type                         ::  thytype
 type                         ::  thytype
   real                       ::  x(4)
   real                       ::  x(4)
 end type thytype
 end type thytype
 type (thytype)               ::  w
 type (thytype)               ::  w
 real, dimension (4)          ::  a = (/1.,2.,3.,4./)
 real, dimension (4)          ::  a = (/1.,2.,3.,4./)
 real, dimension (4)          ::  b = (/5.,6.,7.,8./)
 real, dimension (4)          ::  b = (/5.,6.,7.,8./)
! Test the original problem is fixed.
! Test the original problem is fixed.
 z(:)%x = foo (a)
 z(:)%x = foo (a)
 z(:)%y = foo (b)
 z(:)%y = foo (b)
 if (any(z%x.ne.a).or.any(z%y.ne.b)) call abort ()
 if (any(z%x.ne.a).or.any(z%y.ne.b)) call abort ()
! Make sure we did not break anything on the way.
! Make sure we did not break anything on the way.
 w%x(:) = foo (b)
 w%x(:) = foo (b)
 a = foo (b)
 a = foo (b)
 if (any(w%x.ne.b).or.any(a.ne.b)) call abort ()
 if (any(w%x.ne.b).or.any(a.ne.b)) call abort ()
contains
contains
 function foo (v) result (ans)
 function foo (v) result (ans)
   real, dimension (:), intent(in)   ::  v
   real, dimension (:), intent(in)   ::  v
   real, dimension (size(v))  ::  ans
   real, dimension (size(v))  ::  ans
   ans = v
   ans = v
 end function foo
 end function foo
end program assign_func_dtcomp
end program assign_func_dtcomp
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.