mirror of git://gcc.gnu.org/git/gcc.git
Extend source-expr test case
PR fortran/67125
* gfortran.dg/allocate_with_source_26.f90: Extend
testcase with polymorphic variables.
From-SVN: r265215
This commit is contained in:
parent
c152593057
commit
01982cfbe7
|
|
@ -1,3 +1,9 @@
|
|||
2018-10-16 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/67125
|
||||
* gfortran.dg/allocate_with_source_26.f90: Extend
|
||||
testcase with polymorphic variables.
|
||||
|
||||
2018-10-16 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/67125
|
||||
|
|
|
|||
|
|
@ -11,6 +11,10 @@
|
|||
program p
|
||||
implicit none
|
||||
integer, allocatable :: a(:), b(:), c(:), d(:), e(:)
|
||||
type t
|
||||
integer :: i
|
||||
end type t
|
||||
class(t), allocatable :: p1(:), p2(:), p3(:), p4(:)
|
||||
integer :: vec(6)
|
||||
|
||||
vec = [1,2,3,4,5,6]
|
||||
|
|
@ -21,6 +25,23 @@ program p
|
|||
allocate(d, source=[1,2,3,4,5])
|
||||
allocate(e, source=vec)
|
||||
|
||||
allocate(p1(3:4))
|
||||
p1(:)%i = [43,56]
|
||||
allocate(p2, source=p1)
|
||||
call do_allocate(p1, size(p1))
|
||||
allocate(p4, source=poly_init())
|
||||
|
||||
if (lbound(p1, 1) /= 3 .or. ubound(p1, 1) /= 4 &
|
||||
.or. lbound(p2, 1) /= 3 .or. ubound(p2, 1) /= 4 &
|
||||
.or. lbound(p3, 1) /= 1 .or. ubound(p3, 1) /= 2 &
|
||||
.or. lbound(p4, 1) /= 7 .or. ubound(p4, 1) /= 8 &
|
||||
.or. p1(3)%i /= 43 .or. p1(4)%i /= 56 &
|
||||
.or. p2(3)%i /= 43 .or. p2(4)%i /= 56 &
|
||||
.or. p3(1)%i /= 43 .or. p3(2)%i /= 56 &
|
||||
.or. p4(7)%i /= 11 .or. p4(8)%i /= 12) then
|
||||
call abort()
|
||||
endif
|
||||
|
||||
!write(*,*) lbound(a,1), ubound(a,1) ! prints 1 3
|
||||
!write(*,*) lbound(b,1), ubound(b,1) ! prints 1 3
|
||||
!write(*,*) lbound(c,1), ubound(c,1) ! prints 3 5
|
||||
|
|
@ -37,6 +58,18 @@ program p
|
|||
|
||||
contains
|
||||
|
||||
subroutine do_allocate(x, n)
|
||||
integer, value :: n
|
||||
class(t), intent(in) :: x(n)
|
||||
allocate(p3, source=x)
|
||||
end subroutine
|
||||
|
||||
function poly_init()
|
||||
class(t), allocatable :: poly_init(:)
|
||||
allocate(poly_init(7:8))
|
||||
poly_init = [t :: t(11), t(12)]
|
||||
end function poly_init
|
||||
|
||||
pure function f(i)
|
||||
integer, intent(in) :: i
|
||||
integer :: f(i)
|
||||
|
|
|
|||
Loading…
Reference in New Issue