Commit 01982cfb by Tobias Burnus Committed by Tobias Burnus

Extend source-expr test case

        PR fortran/67125
        * gfortran.dg/allocate_with_source_26.f90: Extend
        testcase with polymorphic variables.

From-SVN: r265215
parent c1525930
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
* gfortran.dg/allocate_with_source_26.f90: New.
2018-10-15 David Malcolm <dmalcolm@redhat.com>
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment