1! { dg-do compile } 2! 3! PR fortran/51378 4! 5! Allow constructor to nonprivate parent compoents, 6! even if the extension specified PRIVATE for its own components 7! 8! Contributed by Reinhold Bader 9! 10module type_ext 11 type :: vec 12 real, dimension(3) :: comp 13 integer :: len 14 end type vec 15 type, extends(vec) :: l_vec 16 private 17 character(len=20) :: label = '01234567890123456789' 18 end type l_vec 19end module type_ext 20program test_ext 21 use type_ext 22 implicit none 23 type(vec) :: o_vec, oo_vec 24 type(l_vec) :: o_l_vec 25 integer :: i 26! 27 o_vec = vec((/1.0, 2.0, 3.0/),3) 28! write(*,*) o_vec%comp, o_vec%len 29 o_l_vec = l_vec(comp=(/1.0, 2.0, 3.0/),len=3) 30! partial constr. not accepted by ifort 11.1, fixed in 12.0 (issue 562240) 31! write(*,*) o_l_vec%comp, o_l_vec%len 32! write(*,*) o_l_vec%vec 33 oo_vec = o_l_vec%vec 34 do i=1, 3 35 if (abs(oo_vec%comp(i) - o_vec%comp(i)) > 1.0E-5) then 36 write(*, *) 'FAIL' 37 stop 38 end if 39 end do 40 write(*, *) 'OK' 41end program 42