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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [private_type_14.f90] - Blame information for rev 694

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 694 jeremybenn
! { 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
!
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
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'
41
end program
42
 
43
! { dg-final { cleanup-modules "type_ext" } }

powered by: WebSVN 2.1.0

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