PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gfortran.dg / private_type_14.f90
blobac31721b8a5ff574ebb36f2d5be0141de6a34a5b
1 ! { dg-do compile }
3 ! PR fortran/51378
5 ! Allow constructor to nonprivate parent compoents,
6 ! even if the extension specified PRIVATE for its own components
8 ! Contributed by Reinhold Bader
10 module 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
19 end module type_ext
20 program 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
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'
41 end program