1! { dg-do compile } 2! Some errors pointed out in the development of the patch. 3! 4! Contributed by Tobias Burnus <burnus@net-b.de> 5! 6module m 7 type :: date 8 private 9 integer :: yr, mon 10 integer,public :: day 11 end type 12 type :: dt 13 integer :: yr, mon 14 integer :: day 15 end type 16end module m 17 18 use m 19 type, extends(date) :: datetime 20 integer :: hr, min, sec 21 end type 22 type(datetime) :: o_dt 23 24 type :: one 25 integer :: i 26 end type one 27 28 type, extends(one) :: two 29 real :: r 30 end type two 31 32 o_dt%day = 5 ! VALID but failed in first version of EXTENDS patch 33 o_dt%yr = 5 ! { dg-error "is a PRIVATE component of" } 34 35 t = two(one = one(4), i = 5, r=4.4) ! { dg-error "has already been set" } 36 37 call foo 38contains 39 subroutine foo 40 use m, date_type => dt 41 type, extends(date_type) :: dt_type 42 end type 43 type (dt_type) :: foo_dt 44 foo_dt%date_type%day = 1 45 foo_dt%dt%day = 1 ! { dg-error "not a member" } 46 end subroutine 47end 48